我有一个php变量包含字符串,从一个函数获取,并希望在javascript中的警报消息中查看它,好吧,我试过那个
var tmp='<?php echo $BillMsg; ?>';
alert(tmp);
但警报没有显示,在控制台中我发现了这个错误 未捕获的SyntaxError:意外的标记ILLEGAL
我试图定义一个随机的php变量,如下面的
<?php $test="test";?>
<script> alert(<?php echo $test; ?>); </script>
它工作正常,但在使用变量$ BillMsg时,它不会工作?怎么了?
答案 0 :(得分:1)
您看到的错误是JS错误,这意味着您的JS代码存在问题(可能是您未向我们展示的前端代码的其他部分存在缺陷)。或者,PHP值导致问题。在JS中轻松插入PHP值的方法是JSON
:
var tmp = <?= json_encode($someVar); ?>;
//<?= is short for <?php echo
alert(tmp);
无论$someVar
的价值是什么,这都不应该造成任何麻烦
使用更新的代码段,问题是传递给$test
函数时未引用alert
的值。将其更改为此,它将起作用:
<?php $test="test";?>
<script> alert(<?= json_encode($test); ?>); </script>
答案 1 :(得分:0)
试试这个..
<html>
<head>
<script>
function msg1(){
var msg = document.getElementById('msg').innerHTML;
alert(msg);
}
</script>
</head>
<body>
<?php
echo "<p id='msg'>Here is my string</p>";
?>
<input type="button" onclick="return msg1();" value="button"/>
</body>
答案 2 :(得分:-3)
这个怎么样
<?php
$BillMsg = isset($BillMsg)? $BillMsg : "$BillMsg not set";
?>
var tmp='<?php echo $BillMsg; ?>';
alert(tmp);