[英]Echo PHP variable from JavaScript?
我也有一个带有一些 JavaScript 代码的 PHP 页面,但是下面的这段 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!";
?>
在你的第二个例子中,你在字符串周围缺少引号(所以 H 被解释为一个变量 - 你没有设置)。
测试这个:
alert (<?php echo "'H'";?>);
或者
alert ('<?php echo "H";?>');
PHP 在服务器端运行,Javascript 在客户端运行。
过程是PHP生成将在客户端执行的Javascript。
您应该能够检查仅查看代码生成的 JS。 当然,如果 JS 依赖于一些 PHP 变量,则需要在 JS 输出之前对其进行实例化。
<?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';
?>
将不会
使用json_encode将一些文本(或任何其他数据类型)转换为 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>
您使用@$_POST
表示您收到(或预期)错误 - 检查您生成的源以查看值是否正确输出。 否则document.getElementById
将失败,您将得不到任何输出。
alert("Delete entry <? echo $row['id']; ?> ")
如果您的扩展名是 js,则 php 将无法在该文件中运行。
原因是,php 解析它应该解析的文件。 php 将解析的文件类型使用 AddType 命令(或指令,无论它们被调用)在 httpd.conf 中配置。
所以你有3个选择:
将文件重命名为script.js.php,并在文件开头指定内容类型,如下所示:
<?php header( 'content-type: text/javascript' ); ?>
干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.