在Jquery.val()函数中使用变量时出错

时间:2015-01-20 09:08:17

标签: javascript php jquery html

当我在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>

此致

4 个答案:

答案 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>