我也有一个带有一些JavaScript代码的JavaScript页面,但是下面这个JavaScript代码似乎不起作用,或者我离得太远了!
我正在尝试这样的方法:
var areaOption=document.getElementById("<?php echo @$_POST['annonsera_name']?>");
areaOption.selected=true;我也尝试过这样做,但它只提醒一个空白的警报框:
alert (<?php echo $test;?>); // I have tried this with quotes, double-quotes, etc... no luck我想错了吗?
更新
一些PHP代码:
<?php
$test = "Hello World!";
?>发布于 2010-01-04 09:42:44
在第二个示例中,您忽略了字符串周围的引号(因此H被解释为变量--您没有设置该变量)。
测试这个:
alert (<?php echo "'H'";?>);或
alert ('<?php echo "H";?>');发布于 2010-01-04 10:00:26
PHP在服务器端运行,Javascript在客户端运行。
这个过程是PHP生成将在客户端执行的Javascript。
您应该能够只查看代码就可以检查生成的JS。当然,如果JS依赖于某些PHP变量,它们需要在输出之前实例化。
<?php
$test = 'Hello world';
?>
<html>
<body>
<script>
alert('<?php echo $test; ?>');
</script>
</body>
</html>会起作用的但是
<html>
<body>
<script>
alert('<?php echo $test; ?>');
</script>
</body>
</html>
<?php
$test = 'Hello world';
?>不会
发布于 2010-01-04 11:09:41
使用编码,编码将某些文本(或任何其他数据类型)转换为JavaScript文本。不只是把引号放在回显字符串 - 周围,如果字符串中有引号,或者换行符,或者反斜杠呢?最好的情况下,您的代码失败,最坏的情况下,您有一个大的旧的跨站点脚本安全漏洞。
所以,
<?php
function js($o) {
echo json_encode($o, JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP);
}
?>
<script type="text/javascript">
var areaOption= document.getElementById(<?php js($_POST['annonsera_name']); ?>);
areaOption.selected= true;
alert (<?php js('Hello World'); ?>);
</script>https://stackoverflow.com/questions/1998457
复制相似问题