首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JavaScript回显PHP变量?

从JavaScript回显PHP变量?
EN

Stack Overflow用户
提问于 2010-01-04 09:36:28
回答 6查看 54.3K关注 0票数 6

我也有一个带有一些JavaScript代码的JavaScript页面,但是下面这个JavaScript代码似乎不起作用,或者我离得太远了!

我正在尝试这样的方法:

代码语言:javascript
复制
  var areaOption=document.getElementById("<?php echo @$_POST['annonsera_name']?>");
  areaOption.selected=true;

我也尝试过这样做,但它只提醒一个空白的警报框:

代码语言:javascript
复制
    alert (<?php echo $test;?>); // I have tried this with quotes, double-quotes, etc... no luck

我想错了吗?

更新

一些PHP代码:

代码语言:javascript
复制
    <?php 
        $test = "Hello World!";
    ?>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-04 09:42:44

在第二个示例中,您忽略了字符串周围的引号(因此H被解释为变量--您没有设置该变量)。

测试这个:

代码语言:javascript
复制
alert (<?php echo "'H'";?>);

代码语言:javascript
复制
alert ('<?php echo "H";?>');
票数 10
EN

Stack Overflow用户

发布于 2010-01-04 10:00:26

PHP在服务器端运行,Javascript在客户端运行。

这个过程是PHP生成将在客户端执行的Javascript。

您应该能够只查看代码就可以检查生成的JS。当然,如果JS依赖于某些PHP变量,它们需要在输出之前实例化

代码语言:javascript
复制
<?php
$test = 'Hello world';
?>
<html>
    <body>
        <script>
            alert('<?php echo $test; ?>');
        </script>
    </body>
</html>

会起作用的但是

代码语言:javascript
复制
<html>
    <body>
        <script>
            alert('<?php echo $test; ?>');
        </script>
    </body>
</html>
<?php
$test = 'Hello world';
?>

不会

票数 5
EN

Stack Overflow用户

发布于 2010-01-04 11:09:41

使用编码,编码将某些文本(或任何其他数据类型)转换为JavaScript文本。不只是把引号放在回显字符串 - 周围,如果字符串中有引号,或者换行符,或者反斜杠呢?最好的情况下,您的代码失败,最坏的情况下,您有一个大的旧的跨站点脚本安全漏洞。

所以,

代码语言: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>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1998457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档