php - jQuery 将 php 数组更新为 javascript

标签 php jquery arrays

我的问题的简化版本:

这里是名为 example.html 的 JavaScript 示例,它写入 JavaScript 数组的内容。

<html>
<head>

<script type="text/JavaScript">
// javascript array called data
data=[
      [1,2],[3,4],[5,6]
     ]
function WriteText(){
    for(var i=0;i<3;i++) document.write(data[i],"<br> ")
}
WriteText();
</script>

</head>
</html>

这些值不是数组,而是写入列file.txt,该列位于example.html所在的同一服务器目录中。 file.txt 看起来像这样

 1 2 
 3 4 
 5 6   

我想通过使用 php 读取此文件并将其传递给 javascript 来完成与上面示例相同的功能。 file.txt 是一个日志文件,每隔几秒就会添加新值 因此,当添加新值时,我希望看到更改更新到屏幕上。 这是读取文件的 getfile.php 函数。

<?php
    $values = array();
    foreach(file("file.txt") as $line => $content) {
    $values[$line] = explode(' ',$content);
    }
    echo json_encode($values)
?>     

这是执行此操作的代码。

<html>
<head>

<script type="text/javascript" src="jquery-1.5.2.js"></script>
<script type="text/javascript">

function WriteText(InputData){
    for(var i=0;i<InputData.length;i++) document.write(InputData[i],"<br> ")
}
 //WriteText(data);

setInterval($.get("getfile.php", { "func": "doSomething" },WriteText  , "json"),1000);

</script>

</head>
</html>

这个想法是我从 http://api.jquery.com/jQuery.get/

此代码显示file.txt。但是,当我手动将新值附加到 file.txt 时,浏览器中没有任何更新。如果我手动刷新页面,也会显示新值。 那么我做错了什么? 是 php 脚本还是我没有正确使用 setInterval() 。 谢谢。

最佳答案

虽然我建议循环 onSuccess 而不是盲目轮询,但问题是您尚未为 setInterval 创建正确的闭包:

setInterval(function(){
    $.get('getFile.php',{},WriteText,'json');
},1000);

关于php - jQuery 将 php 数组更新为 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6134022/

相关文章:

arrays - Swift 中 MemoryLayout.size 中数组的大小

php - 原则 2 HasLifecycleCallbacks

php - 使用 Ajax/Json 更新 Mysql 记录不起作用

javascript - 提交前更新空表单字段

PHPExcel 无法保存或下载文件

javascript - Bootstrap ,容器元素的预高度

java - 如何删除 ArrayList<ArrayList<String>> 的重复项并对数组进行排序

php - 实时了解用户在我的站点中

php - Twig 缓存究竟是如何工作的?

arrays - 测试字符串是否包含字符串数组中的任何内容(kotlin)