当我在val()函数中使用变量而不是固定值时,我没有输出。我该如何解决这个错误。
示例:在下面的示例中,当我使用变量($data="Glenn Quagmire")
时,我没有输出。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
<?php $data="Glenn Quagmire"; ?>
$("input:text").val($data);
});
});
</script>
</head>
<body>
<p>Name: <input type="text" name="user"></p>
<button>Set the value of the input field</button>
</body>
</html>
此致
答案 0 :(得分:1)
在浏览器中运行的JavaScript无法访问PHP程序中的变量(在将页面传送到浏览器之前已在另一台计算机上运行,因此该变量甚至不存在)。
您必须让PHP将数据输出到JavaScript。
您可以使用json_encode
对其进行编码(因为JSON(或多或少)是JavaScript文字语法的一个子集)。这将根据需要添加引号并转义数据中的任何特殊字符(您的示例中没有任何特殊字符,但这是一种安全,通用的方法,可以保护您免受XSS攻击)。
$("input:text").val(<?php echo json_encode($data); ?>);
答案 1 :(得分:1)
不要使用&#34; $&#34;对于jQuery中的变量(即PHP)。
<?php echo 'data="Glenn Quagmire";'; ?>
$("input:text").val(data);
答案 2 :(得分:1)
就这样使用:
$("input:text").val("<?php echo $data; ?>");
完整代码
<script>
$(document).ready(function(){
$("button").click(function(){
<?php $data="Glenn Quagmire"; ?>
$("input:text").val("<?php echo $data; ?>");
});
});
</script>
答案 3 :(得分:1)
使用<?= $variable ?>
在HTML中嵌入变量值,例如:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
<?php $data="Glenn Quagmire"; ?>
$("input:text").val("<?= $data ?>");
});
});
</script>
</head>
<body>
<p>Name: <input type="text" name="user"></p>
<button>Set the value of the input field</button>
</body>
</html>