我是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>';
答案 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逻辑片段的习惯会导致严重错综复杂的代码。我说的是痛苦的经历。