我一直在尝试将javascript变量传递给php,它不能动态工作,但是静态工作。
这里的动态代码不起作用:
<input onClick="myFunction();" id="demoteTask" name="demoteTask" type="checkbox"/>Demote to Child
<script>
function myFunction() {
var parent = prompt("Please enter parent reskb id:", "");
<?php $new = "<script>document.writeln(parent);</script>" ?>
alert (<?php $new ?>);
}
</script>
这是有效的静态代码:
<script>
var p1 = "hello";
</script>
<?php
$kk="<script>document.writeln(p1);</script>";
echo $kk;
?>
动态代码在alertbox中返回null值。
答案 0 :(得分:1)
为什么要混合使用服务器端和客户端脚本。 服务器端脚本执行并将数据包发送到客户端。
在您的代码中,PHP将生成输出:
:此强>
<input onClick="myFunction();" id="demoteTask" name="demoteTask" type="checkbox"/>Demote to Child</input>
<script>
function myFunction() {
var parent = prompt("Please enter parent reskb id:", "");
// Here `$new` becomes server variable
<?php $new = "<script>document.writeln(parent);</script>" ?>
// and will prints here
alert (<?php echo $new ?>);
}
</script>
至此
<script>
function myFunction() {
var parent = prompt("Please enter parent reskb id:", "");
alert (<script>document.writeln(parent);</script>);
}
</script>
<强> FIX 强>
您应该只使用客户端脚本。并且不需要混合脚本。 Server脚本可以生成客户端脚本作为服务器脚本变量。这是我的例子:
<script>
function myFunction() {
var parent = prompt("Please enter parent reskb id:", "");
alert(parent);
}
</script>
答案 1 :(得分:-1)
将此行:alert (<?php $new ?>);
更改为:alert (<?php echo $new ?>);
然后让我知道会发生什么