4 回答
TA贡献1943条经验 获得超7个赞
你可以做:
<!DOCTYPE html>
<html>
<head>
<title>Payment Receipt</title>
</head>
<body>
<?php
...
if($row) {
$myValue = 'Hi there!';
?>
<script>
var msg = "<?php echo $myValue; ?>"; //trying to set it to a JS var, so I could send it to below
//Your remaining js script here ...
</script>
<?php } else {
//your else condition
}
?>
</body>
</html>
TA贡献1784条经验 获得超9个赞
尝试这个
<!DOCTYPE html>
<html>
<head>
<title>Payment Receipt</title>
</head>
<body>
<?php
...
if($row) {
$myValue = 'Hi there!'
?>
<script>
var msg = "<?php $myValue; ?>";
</script>
<?php } else {
echo 'Incorrect Value';
}
?>
</body>
</html>
TA贡献1876条经验 获得超7个赞
简化你的代码(调试时你应该总是这样做!)你有这个:
$myValue = 'Hi there!';
echo <<<JS001
<script type="text/javascript">
var msg = {$myValue};
</script>
JS001;
如果您查看返回给浏览器的 HTML,您会发现它看起来像这样:
<script type="text/javascript">
var msg = Hi there!;
</script>
浏览器不知道“你好!” 应该是一个字符串,所以它试图将它作为代码执行。
你想要的输出是这样的:
<script type="text/javascript">
var msg = 'Hi there!';
</script>
所以我们需要将这些引号添加到 PHP 中:
$myValue = 'Hi there!';
echo <<<JS001
<script type="text/javascript">
var msg = '{$myValue}';
</script>
JS001;
作为更通用的解决方案,您可以滥用 JSON 字符串是有效的 JS 值这一事实,并json_encode在 PHP 中使用:
$myValue = 'Hi there!';
$myValueJson = json_encode($myValue);
echo <<<JS001
<script type="text/javascript">
var msg = {$myValueJson};
</script>
JS001;
这在这种情况下没有区别,但对于传递其他类型的值很有用 - 数组null等
TA贡献1757条经验 获得超7个赞
为了更好地管理代码,您可能应该将 HTML、PHP 和 JS 代码分开放在不同的文件中。
想象一下这样的事情:
控制器.php
$displayName="David";
include 'vue.php';
vue.php
<html>
...
<body>
<div id="php-data" data-displayName="<?php echo $displayName ?>"></div>
</body>
</html>
脚本.js
<script>
var msg = document.getElementById('php-data').dataset.displayName // "David";
</script>
添加回答
举报