【问题标题】:PHP counter in Javascript for loopJavascript for循环中的PHP计数器
【发布时间】:2012-08-20 18:14:51
【问题描述】:

我正在尝试实现一个 javascript for 循环,其中一个 php 变量正在计数 (phpVar++) 每个循环。但是,从 0 开始的变量总是以 1 结束,即使循环循环了多次。

这不可能吗?

<script>
    <?php  $totalMarkers=0; ?>
    for (var i = 0; i < markers.length; i++) {
      <?php $totalMarkers=$totalMarkers+1; ?>
    }
    <?php echo $totalMarkers ?>   //this always prints "1"
</script>

我正在尝试这样做,以便可以在 HTML 正文的不同位置打印 $totalMarkers。

【问题讨论】:

  • 重复了很多问题,我已经数不清了。
  • PHP/JavaScript 不能那样工作。你不能那样做。
  • @SimonAndréForsberg 我在发帖前进行了多次搜索,但没有找到任何东西。
  • @swl1020 这是一个例子:stackoverflow.com/questions/7100633/…。谷歌“更改 javascript 中的 php 变量”或类似内容以查找更多信息。

标签: php javascript html


【解决方案1】:

Javascript 在客户端计算机上执行,PHP 在服务器上执行。因此,在页面完全加载到用户浏览器中之前,您的循环不会运行——此时,不会执行任何 PHP。

当该页面被渲染时,这是一个过程:

&lt;script&gt;

&lt;?php $totalMarkers=0; ?&gt;

for (var i = 0; i &lt; markers.length; i++) {

&lt;?php $totalMarkers=$totalMarkers+1; ?&gt;

}

&lt;?php echo $totalMarkers ?&gt;

&lt;/script&gt;

如果您要查看源代码,您会看到:

<script>
    for (var i = 0; i < markers.length; i++) {
    }
    1   //this always prints "1"
</script>

【讨论】:

    【解决方案2】:

    PHP 在服务器 上运行。 JavaScript 在浏览器中运行。

    您的服务器运行 PHP,然后将其发送到您的浏览器:

    <script>
            for (var i = 0; i < markers.length; i++) {
          }
        1</script>
    

    JavaScript 影响 PHP 的唯一方法是使用 AJAX 或类似的方法。

    【讨论】:

      【解决方案3】:

      PHP 运行在服务器端,JavaScript 运行在客户端(忽略 Node.JS 等)

      您的浏览器接收到的 HTML 如下所示:

      <script>
          for (var i = 0; i < markers.length; i++) {
          }
          1   //this always prints "1"
      </script>
      

      所以,我不确定你想在这里完成什么,但你必须记住 PHP 和 JavaScript 不能直接交互。

      【讨论】:

        【解决方案4】:

        你不能像那样混合 PHP 和 JavaScript。那样不行。

        PHP 是在 JavaScript 之前运行的。所以,这些行:

        • &lt;?php $totalMarkers=0; ?&gt;
        • &lt;?php $totalMarkers=$totalMarkers+1; ?&gt;
        • &lt;?php echo $totalMarkers ?&gt;

        在您的浏览器看到它之前运行

        您的浏览器只会看到:

        for (var i = 0; i < markers.length; i++) {
        }
        1
        

        【讨论】:

          【解决方案5】:

          不,这是不可能的——如果不使用一堆看起来完全不适合你的 AJAX,那是不可能的。 PHP 在执行任何 JavaScript 之前就已执行。 PHP 是服务器端的,JavaScript 是客户端的。因此,JavaScript 无法控制 PHP。

          【讨论】:

            【解决方案6】:

            你不能那样做。 PHP 是一个超文本预处理器。它在任何 Javascript 代码之前执行。您实际拥有的代码需要 $totalMarkers 并将其初始化为 0。然后它添加一个然后它回显......它将始终为“1”!

            如果你想用 PHP 操作它,你需要使用 Javascript 变量进行计数,然后将其发送到服务器。

            【讨论】:

              猜你喜欢
              • 2020-05-31
              • 2012-01-11
              • 1970-01-01
              • 1970-01-01
              • 2010-11-14
              • 2017-06-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多