我在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"];