我们可以在javascript中使用php变量,在php代码中使用javascript变量吗


can we use php variable in javascript and javascript variable in php code?

我在javascript中使用php变量有问题,在php中使用javascript变量有问题。

$UpdateText="updateReTotal(Tills,'pos_cash','{$till->till_id}');updateVariance('{$till->till_id}')";
echo '<script type="text/javascript">'
    , 'testFunctionForUpdateTotal(.$UpdateText.);'
    , '</script>';

您只是遇到了报价问题。:

$UpdateText="updateReTotal(Tills,'pos_cash','{$till->till_id}');updateVariance('{$till->till_id}')";
echo '<script type="text/javascript">'
    , "testFunctionForUpdateTotal('".$UpdateText."');"
    , '</script>';

这是一个很好的例子,说明了为什么应该避免使用echo语句来输出HTML。PHP的设计允许您在HTML中嵌入PHP,您应该利用这一点:

    $UpdateText="updateReTotal(Tills,'pos_cash','{$till->till_id}');updateVariance('{$till->till_id}')";
?>
    <script type="text/javascript">
        testFunctionForUpdateTotal('<?= $UpdateText; ?>');
    </script>';

如果使用串联,您可以将php变量放入javascript代码中,并且您已经在echo中使用了串联。

php看不到javascript变量,因为javascript在浏览器上,php在服务器上

您最好的选择就是将javascript变量

传回

JavaScript是客户端。PHP是服务器端。他们可以以某种方式交谈,但这并不总是那么容易。

要在Javascript中使用PHP变量,我认为你必须有多种方法。简单的方法是:

var phpVar = "<?php echo $myVar; ?>";

或者,通过回声:

echo "var phpVar = '{$myVar}';";

但是,你很快就会意识到这将被打印成一个常数。这只能在页面的渲染中完成,因此有点有限。实际上,如果$myVar包含5,则直接写入:

var phpVar = "5";

结果是一样的。在JavaScript中使用PHP var的另一种方法是AJAX获取它

$.get("/page_that_sends_my_var.php", { }, function(res) {
    var phpVar = res;
});

通过page_that_sends_my_var.php这样的东西:

<?php
echo $myVar;

但这将是异步的。所以,你有两种不同的方法来达到两个不同的目的。第一个是同步的,只有在页面呈现时才有效;第二个可以通过异步调用随时工作。我可能总是使用第二种方法;它更优雅,AJAX是一件很好的事情:它使您的应用程序更加动态。

至于在PHP中使用Javascript变量,您也可以通过两种方式来实现。第一种是使用Form,并在表单提交期间将变量包含在表单的数据中;另一种(我更喜欢)是使用AJAX调用PHP脚本,并发送变量。像这样:

$.post("page_that_uses_my_var.php", { "myVar" : myVar }, function(res) {
    // do something if you like
});

然后,在page_that_uses_my_var.php:中

<?php
$jsVar = $_POST["myVar"];