php回声的javascript与php echo里面

时间:2014-02-19 07:30:30

标签: javascript php arrays variables echo

我是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回显包含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>';

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:-1)

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

考虑此过程的最佳方式就好像是动态生成文本文件一样。您生成的文本只有在浏览器解释后才会成为可执行代码。只在服务器上评估您在<?php标记之间放置的内容。

顺便说一句,养成在HTML或Javascript中嵌入随机PHP逻辑片段的习惯会导致严重错综复杂的代码。我说的是痛苦的经历。