嵌套在jQuery中的PHP只执行一次.我希望它每次都执行


PHP nested in jQuery only executes once. I want it to execute every time

我在使用一大块 PHP/jQuery 代码时遇到了问题。

背景资料: 我的页面上有 10 个div 和他们自己的 id,名为 Q1 - Q10。在页面加载时,所有div 都使用 jQuery hide 命令在页面上作为隐藏开始。在 PHP 中,我有一个名为"tracker"的数组,它有一个 10 个数字的随机列表,范围从 1-10,没有重复的数字。我还有一个变量"x"用作索引。这两个变量都是在我的页面顶部的一些PHP中声明和填充的。

问题: 当第一次按下按钮时,代码将完美执行,向用户显示第一个随机div。所有额外的点击都不执行任何操作。

我希望看到的结果: 每次单击我的按钮时,都会向用户显示一个新的div。

    <script>$('form').click(function()
    {
      <?php
        echo "$('#Q" . $tracker[$x] . "').show();" ;
            $x++;
      ?>
    });
   </script>

提前感谢您提供的任何帮助。

只需在每次点击时在 javascript 中创建随机值 -

<script>
  $('form').click(function() {
    var randNum = Math.floor(Math.random() * 10) + 1;
       $('#Q'+randNum).show();
  });
</script>

看到这个 jsFiddle - http://jsfiddle.net/3cHtc/1/


如果你想使用你的洗牌 php 数组$tracker,那么你需要将完整的数组顺序添加到你的 javascript 中,这可以使用 json_encode()

<script>
  var counter = 0;
  var randNum = <?php echo json_encode($tracker); ?> // print the $tracker array as a json array
  $('form').click(function() {
       $('#Q'+randNum[counter]).show(); 
       counter +=1; // increase the counter
  });
</script>

js小提琴 - http://jsfiddle.net/3cHtc/4/