繁体   English   中英

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

[英]How can I properly interpolate a variable as the value of a generated JavaScript value?

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

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

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

尝试这个 :

$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>

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

例如,如果$ 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攻击。

.value = $code

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

PHP在您编写$code看不到$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识别并解析您的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM