Javascript变量没有传递给php变量

时间:2015-01-30 05:22:39

标签: javascript php

我一直在尝试将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值。

2 个答案:

答案 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 ?>);

然后让我知道会发生什么