按钮显示不会增加PHP,脚本

时间:2017-05-20 07:46:14

标签: php

我是初学者,尝试使用php和脚本。 以下代码是我尝试过的。

 <?php
       for ($i = 0; $i < 50; $i++) {
            echo "<button onclick = 'testBTN()'> TEST </button>";
            echo "<script> function testBTN(){ document.write ($i);}

</script>";
}
    ?>

想知道为什么当我点击按钮时,数字总是固定在49,它不会增加,我点击的每个按钮都会从0增加到49.

我可以知道为什么以及如何处理它。

4 个答案:

答案 0 :(得分:1)

在函数参数中传递你的值

<?php
      for ($i = 0; $i < 50; $i++) {
           echo "<button onclick = 'testBTN(".$i.")'> TEST </button>";               
       }
       echo "<script> function testBTN(i){ document.write (i);}</script>";
?>

答案 1 :(得分:0)

试试这个

 <?php
    for ($i = 0; $i < 50; $i++) {
       echo "<button onclick = 'testBTN(".$i.")'> TEST </button>";
    }
       echo "<script> 
             function testBTN(i){ 
                      document.write(i++);
                       }
              </script>";
    ?>

答案 2 :(得分:0)

避免使用for循环。您正在打印50个具有50个testBTN功能定义的按钮。 刚

          
         echo "<button onclick = 'testBTN()'> TEST </button>";
                    echo "<script> 
    var i=0;               
    function testBTN(){ document.write (i);i++;}
        
        </script>";

答案 3 :(得分:0)

月亮。

你的问题在起作用。 您在javascript global中定义的所有函数和变量都继承自window global。

例如,您在函数中定义var myvar = 1;。 你可以像这样访问这个变量

&#13;
&#13;
var MyVar = 123;

alert("Without window: " + MyVar);
alert("With window" + window.MyVar)
&#13;
&#13;
&#13;

JS中的

函数与变量相同。您定义function myFunc() = { alert("hello") } 例如:

&#13;
&#13;
function myFunc() { alert("Hello func"); }

myFunc();
window.myFunc();
&#13;
&#13;
&#13;

关于你的案子。 您的PHP生成的代码类似于:

&#13;
&#13;
<button onclick = 'testBTN()'> TEST </button>
<script> function testBTN(){ document.write (1);} </script>
<button onclick = 'testBTN()'> TEST </button>
<script> function testBTN(){ document.write (2);} </script> 
// ....
&#13;
&#13;
&#13;

但是浏览器JS看到的代码如下:

&#13;
&#13;
function testBTN(){ document.write (1);}
function testBTN(){ document.write (2);}
&#13;
&#13;
&#13;

您重写了prev函数。 例如:

&#13;
&#13;
function myFunc() { alert("Hello me"); }
function myFunc() { alert("Hello me 2"); }
function myFunc() { alert("Hello me 3"); }
function myFunc() { alert("Hello me 4"); }
function myFunc() { alert("Hello me 5"); }

myFunc();
&#13;
&#13;
&#13;

对于这种情况,您有2个解决方案 1:

<?php
  for ($i = 0; $i < 50; $i++) {
       echo "<button onclick = 'testBTN". $i ."()'> TEST ". $i ." </button>";
       echo "<script> function testBTN".$i."(){ document.write (".$i.");}</script>";
   }
?>

&#13;
&#13;
<button onclick = 'testBTN1()'> TEST 1 </button>
<script> function testBTN1(){ document.write (1);}</script>
<button onclick = 'testBTN2()'> TEST 2 </button>
<script> function testBTN2(){ document.write (2);}</script>
....
&#13;
&#13;
&#13;

2:

<?php
  echo "<script> function testBTN(".$i."){ document.write (".$i.");}</script>";
  for ($i = 0; $i < 50; $i++) {
       echo "<button onclick = 'testBTN(". $i .")'> TEST ". $i ." </button>";
  }
?>

&#13;
&#13;
<script> function testBTN(i){ document.write (i);}</script>

<button onclick = 'testBTN(1)'> TEST 1 </button>
<button onclick = 'testBTN(2)'> TEST 2 </button>
....
&#13;
&#13;
&#13;

第二个例子更好,因为你只创建了一个函数,而不是49。