【问题标题】:php echo of javascript with php echo insidejavascript的php echo,里面有php echo
【发布时间】:2014-02-19 07:30:30
【问题描述】:

我对 PHP 和 JavaScript 非常陌生。我目前在 PHP 中使用 echo 在页面上运行一些 JavaScript。我需要创建一个新的 javascript 数组和一个与现有 PHP 数组和变量相等的新变量,所以我这样做了:

var messages = <?php print_r($messages)?>
var list = <?php echo $message['user_name'].': '.$message['text'].' ('.date('d/m/Y H:i:s', $message['date']).')'.'<hr />'; ?>

但是,我使用 echo to echo 包含 echo 的脚本会导致问题。我将如何解决这个问题。我想附和它,因为它只有大约 4 行长,所以有替代方案吗。

提前谢谢你。

编辑:这是整个 JavaScript。它用于消息传递系统。 $messages 是从另一个 PHP 函数声明的,此代码的基本目的是每隔几秒“刷新”一次回显,以便用户无需刷新页面即可看到新消息:

    echo '<script type="text/javascript">;';
    echo 'var messages = <?php print_r($messages)?';
    echo 'var list = <?php echo $message['user_name'].': '.$message['text'].' ('.date('d/m/Y H:i:s', $message['date']).')'.'<hr />'; ?>';
    echo 'setInterval(function(){console.log("hello")},3000);';
    echo '</script>';

【问题讨论】:

标签: javascript php arrays variables echo


【解决方案1】:

没有得到你想要的,但是如果你想在javascript中使用php数组而不是让它成为javascript数组

<script>
    <?php $test_arr = array('apple','banana','mango');?>
    var js_array = <?php echo json_encode($test_arr);?>;
</script>

输出

<script>
    var js_array = ["apple","banana","mango"];
</script>

【讨论】:

    【解决方案2】:

    您的 Javascript 将在客户端而不是服务器上执行。这意味着 foo 不在服务器端评估,因此它的值不能写入服务器上的文件。

    考虑这个过程的最佳方式是动态生成一个文本文件。您生成的文本只有在浏览器解释后才成为可执行代码。只有您放在&lt;?php 标记之间的内容才会在服务器上进行评估。

    顺便说一句,养成在 HTML 或 Javascript 中嵌入随机 PHP 逻辑片段的习惯可能会导致代码非常复杂。我是从痛苦的经历中说出来的。

    【讨论】:

    • 这个答案是direct duplicate of this
    • 您好。根据我在您的另一篇文章中的注释,我们更喜欢将复制的作品归于归属,以便此处的 OP 可以感谢作者 - 通常是通过支持。但是,在我看来,在问题下添加一个链接会更好。我相信你需要 50 个代表才能做到这一点,但如果你愿意,只需回答几个问题即可。
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多