我是初学者,尝试使用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.
我可以知道为什么以及如何处理它。
答案 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;
。
你可以像这样访问这个变量
var MyVar = 123;
alert("Without window: " + MyVar);
alert("With window" + window.MyVar)
&#13;
JS中的
函数与变量相同。您定义function myFunc() = { alert("hello") }
例如:
function myFunc() { alert("Hello func"); }
myFunc();
window.myFunc();
&#13;
关于你的案子。 您的PHP生成的代码类似于:
<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;
但是浏览器JS看到的代码如下:
function testBTN(){ document.write (1);}
function testBTN(){ document.write (2);}
&#13;
您重写了prev函数。 例如:
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;
对于这种情况,您有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>";
}
?>
<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;
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>";
}
?>
<script> function testBTN(i){ document.write (i);}</script>
<button onclick = 'testBTN(1)'> TEST 1 </button>
<button onclick = 'testBTN(2)'> TEST 2 </button>
....
&#13;
第二个例子更好,因为你只创建了一个函数,而不是49。