首页 > 解决方案 > PHP里面的Javascript If函数?

问题描述

所以现在我有这个JS代码:

function scoreCalculation(random, userPick) {
  if (userPick === random) {
    userScore++;
    winner.innerHTML = `<h3><font color="green">You won</font></h3>`;
  }
}

这基本上将 +1 添加到分数并显示在 html 中。

我想要实现的是update_user_meta在 userPick===random 时使用 PHP 将该分数添加到数据库中。

我正在尝试在 javascript 代码中执行这个 PHP(经过测试和工作):

<?php   $current_user = wp_get_current_user();
    $current_user_id =  $current_user->ID;
    $user_coins = get_user_meta( $current_user_id, 'usercoins' , true );
    $user_coins_sum_plus = $user_coins + 1;
                
update_user_meta( $current_user_id, 'usercoins', $user_coins_sum_plus);

?>

我已经尝试过这种组合,但它不起作用。基本上 JS 代码完全停止工作:

function scoreCalculation(random, userPick) {
  if (userPick === random) {
    userScore++;
<?php   $current_user = wp_get_current_user();
    $current_user_id =  $current_user->ID;
    $user_coins = get_user_meta( $current_user_id, 'usercoins' , true );
    $user_coins_sum_plus = $user_coins + 1;
    $user_coins_sum_minus = $user_coins - 1;
                
update_user_meta( $current_user_id, 'usercoins', $user_coins_sum_plus);

?>;
winner.innerHTML = `<h3><font color="green">You won</font></h3>`;
  }

我想我在javascript中添加php时犯了一个小错误?

任何帮助,将不胜感激。

标签: javascriptphpwordpress

解决方案


您不能像这样在 javascript 文件中使用 PHP 代码。为此,您必须使用 Ajax 和 Jquery 并将 Ajax 调用中的数据传递给 PHP 文件。您可以参考 Jquery 和 ajax 文档。阅读 https://jquery.comhttps://api.jquery.com/jquery.ajax/

您必须通过表单或数据属性将这些数据传递给 javascript 文件。之后,您可以使用 ajax 调用 PHP 文件并执行您想要的代码。

    $current_user = wp_get_current_user();
    $current_user_id =  $current_user->ID;
    $user_coins = get_user_meta( $current_user_id, 'usercoins' , true );
    $user_coins_sum_plus = $user_coins + 1;
    $user_coins_sum_minus = $user_coins - 1;
    
    update_user_meta( $current_user_id, 'usercoins', $user_coins_sum_plus);

例如,这将有效

alert( <?php echo "'Hello'"; ?> );

但是你不能执行任何这样的操作:

function my_function()
{
<?php
$num1 = 2;
$num2 =3;
$sum = $num1 + $num2;
echo $sum;
?>
}

推荐阅读