【问题标题】:very simple javascript failing非常简单的javascript失败
【发布时间】:2009-06-04 17:56:00
【问题描述】:

工作示例:

这与我在页面上其他地方使用的代码几乎相同,但由于某种原因在这里失败了。

<?php
//$p = "test";
?>

<script>
alert('posts are firing? ');
parent.document.getElementById('posts').innerHTML = "test";
</script>

失败示例:(警报仍然有效)

<?php
$p = "test of the var";
?>

<script>
alert('posts are firing? ');
parent.document.getElementById('posts').innerHTML = '<?php $p; ?>';
</script>

【问题讨论】:

  • 如果可能,您应该使用json_encode

标签: php javascript


【解决方案1】:

试试

'<?php echo $p; ?>';

'<?= $p ?>';

【讨论】:

  • 记住:您必须在 php.ini 文件中启用 short_tags 才能使 = 工作:)
  • 是的,这就是我提供这两行的原因:-)
【解决方案2】:

调试 101:开始检查所有变量值。

alert(parent);
alert(parent.document);
alert(parent.document.getElementById('posts'));

以及渲染的值:'&lt;?php $p; ?&gt;'

【讨论】:

    【解决方案3】:

    确保您的“帖子”对象(我猜它是 DIV 或 SPAN)在使用 javascript 填充之前加载。

    【讨论】:

      【解决方案4】:

      您正在尝试使用 php 生成 javascript,这里我使用了一个简单的回显:

      <?php
      
      $p = "test of the var";
      
      echo"
      <div id='posts'></div>
      
      <script type='text/javascript'>
      var posts = document.getElementById('posts');
      posts.innerHTML = '$p';
      </script>
      ";
      
      ?>
      

      注意 $p 并且 div 打印在 javascript 之前!

      【讨论】:

        【解决方案5】:

        您没有输出变量数据是它不起作用的原因。您需要回显或打印变量 $p。

        【讨论】:

          【解决方案6】:

          在您的示例中,$p 正在评估,而不是打印。

          要打印它,您应该使用 printecho 或语法 。没有 \

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-16
            • 1970-01-01
            • 1970-01-01
            • 2020-03-12
            • 1970-01-01
            • 2013-10-05
            相关资源
            最近更新 更多