【问题标题】:PHP returns 0 after a multiplication operationPHP 在乘法运算后返回 0
【发布时间】:2012-08-19 21:53:10
【问题描述】:

我需要将值临时存储在 PHP 变量中,因为该值应与注释一起发送。用户不能在不输入评论的情况下发送评分,这就是我决定这样做的原因。

为什么当 PHP 计算值时我的变量返回值为零?

我有这个代码:

<a href='#' onclick='rate(1); return false;' class='one-star'>1</a>

<script type="text/javascript">
     function rate (amnt){
     <?php
         $currentRating = amnt;
         $ratingImageWidth = $currentRating * 25;
         echo "alert($ratingImageWidth)";
     ?>
     }
</script>

注意:

  • 它输出一个带有 0 的警报;
  • $currentRating 变量不为空,我尝试将它包含在警报函数中,它返回正确的值。
  • 我尝试了这些将$currentRating 变量转换为int:

  • settype($currentRating, "integer");
  • (int)$currentRating;

    什么也没发生,它仍然返回零。有谁知道如何解决这个问题?非常感谢那些愿意提供帮助的人。

  • 【问题讨论】:

    • PHP 在服务器上运行,JavaScript 在客户端运行。你不能以这种方式混合它们。
    • 我怎样才能使这个计算成为可能?
    • JS 和 PHP 不能混用,而且函数末尾少了一个 } 标签(虽然不能解决你的问题)
    • 使用 JavaScript 完成所有操作:function rate(amnt) { alert(parseInt(amnt) * 25); }

    标签: php integer


    【解决方案1】:

    PHP 在服务器上运行,因此您的 JavaScript 实际上如下所示:

    function rate(amnt) {
        alert(0)
    

    令人惊讶的是,它在结尾处缺少},它完全可以工作......

    关键是,你不能以这种方式混合 PHP 和 JS。你为什么不直接做alert(amnt*25)

    【讨论】:

    • 我无法使用alert(amnt*25),在我的情况下,我需要将其存储在 PHP 变量中,以在输入评论并将其提交到数据库之前检查用户是否评分。
    • 这种情况下,你需要使用AJAX将调用发送到服务器,并使用响应来显示结果。
    【解决方案2】:

    您为什么要为此使用 PHP?只需在 javascript 中进行计算:

    <script type="text/javascript">
         function rate (amnt){
             var ratingImageWidth = amnt * 25;
             alert(ratingImageWidth);
         }
    </script>
    

    PHP 在浏览器加载页面之前在服务器上运行。加载页面后,Javascript 在客户端的浏览器中运行。两人不能互相打电话,因为他们跑在不同的地方。

    【讨论】:

    • 我需要将它存储在一个 php 变量中,因为它应该是一个全局变量。我想在发送评论之前检查用户是否评分,这是我想到的唯一解决方案。
    • 那么你将需要使用 AJAX 向服务器发送请求。
    【解决方案3】:

    PHP 代码在发送给用户之前运行。尝试查看已处理页面的来源以了解其工作原理。

    【讨论】:

      【解决方案4】:
      $ php << EOF
      <?php
      echo amnt * 25;
      EOF
      PHP Notice:  Use of undefined constant amnt - assumed 'amnt' in - on line 2
      
      Notice: Use of undefined constant amnt - assumed 'amnt' in - on line 2
      0
      

      你不能像这样从 JavaScript 运行 PHP。 改用 XHR,或者坚持使用 JavaScript

      【讨论】:

        猜你喜欢
        • 2020-10-08
        • 1970-01-01
        • 1970-01-01
        • 2014-12-18
        • 1970-01-01
        • 2013-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多