如何正确地将变量插值为生成的JavaScript值的值?

时间:2010-03-22 18:42:58

标签: php javascript

我无法将文本字段的值(带有id“code”)更改为PHP值(存储在变量$code中):

$code = $_POST['code'];
echo "<script language='javascript'>
document.getElementById('code').value = $code </script>";

我也尝试了'$code'"$code","..." + "%code + "...",但都没有帮助。 我做错了什么?

4 个答案:

答案 0 :(得分:3)

试试这个:

$code = $_POST['code'];
echo "<script language=\"javascript\">
document.getElementById(\"code\").value =". $code. "</script>";

或者更好:

<?php
$code = str_replace("'", "\'", htmlspecialchars($_POST['code']));
?>

<script type="text/javascript">
document.getElementById("code").value = "<?php echo $code;?>";//OR <?= $code;?>;
</script>

答案 1 :(得分:3)

$ code是否包含字符串?如果是这样,你需要引用它。

e.g。如果$ code等于“我的测试字符串”,则Javascript将输出如下:

$code = $_POST['code'];
echo "<script language='javascript'>
document.getElementById('code').value = my test string </script>";

这是无效的Javascript。

你需要:

$code = str_replace("'", "\'", $_POST['code']);
echo "<script language='javascript'>
document.getElementById('code').value = '$code' </script>";

我也会这样做:

$code = str_replace("'", "\'", htmlspecialchars($_POST['code']));

htmlspecialchars引用HTML字符以防止XSS攻击。

答案 2 :(得分:1)

.value = $code

.value = '".str_replace("'", "\'", $code)."'

答案 3 :(得分:0)

PHP没有看到你编写的$code。请改用:

$code = $_POST['code'];
echo "<script language='javascript'>
document.getElementById('code').value = ".$code."; </script>";

$code = $_POST['code'];
echo "<script language='javascript'>
document.getElementById('code').value = {$code}; </script>";

更明确地允许PHP识别和解析你的字符串。