Php 从文本文件获取数据的小问题

Php 从文本文件获取数据的小问题,php,jquery,ajax,Php,Jquery,Ajax,更新:成功进展但仍然存在问题:刷新页面两次后重新加载新数据每10或15分钟刷新一次页面是可以的,但是一个ferfesh不会显示文本文件中的新数据,尽管它已经包含来自getData.php文件的新数据 getData.php代码 $connect = mysql_connect("localhost","root",""); $db = mysql_select_db("mydb",$connect); $getTextQ = "select * from text"; $getTextR =

更新:成功进展但仍然存在问题:刷新页面两次后重新加载新数据每10或15分钟刷新一次页面是可以的,但是一个ferfesh不会显示文本文件中的新数据,尽管它已经包含来自getData.php文件的新数据

getData.php代码

$connect = mysql_connect("localhost","root","");
$db = mysql_select_db("mydb",$connect);

$getTextQ = "select * from text";
$getTextR = mysql_query($getTextQ);
$path = "text/";
$myfile = $path."data.txt";
$open = fopen($myfile,"w");
while($row = mysql_fetch_array($getTextR)){
    $write = fwrite($open,"<div class='slide'><h1>".$row['id']."</h1><p>".$row['desc']."</p></div>");       
}
$close = fclose($open);
mysql_close($connect);
index.php代码

<script src="js/jquery-1.7.1.js"></script>
<script src="js/slides.min.jquery.js"></script>
<script>
    $(function(){
            $.ajax({
            url: 'getData.php',
            type: 'POST'
            });
        });         
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "text/data.txt", true);
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4) {
if (txtFile.status === 200) {
allText = txtFile.responseText;
}
}
}
txtFile.send(null);

    });

</script>
html代码

<div id="mydiv" class="slides_container">                               
<?php $path ="text/"; 
$open = fopen($path."data.txt","r"); 
$read = fread($open,50000); 
$close = fclose($open); 
echo $read; 
?>
</div>
.ajax默认情况下是异步的。如果您首先调用.ajax,并希望它为下一个在同一页面上调用的.load函数创建文本文件,请在.ajax函数中设置async:false

$.ajax({
    url: 'getData.php',
    type: 'POST',
    async: false
});
此外,如果出现问题,添加延迟可能会有帮助,让服务器有时间写入文本文件。我不知道你的文本文件会有多大。例如:

$("#myDiv").delay(1000).load("text/data.txt");
或者,在jeroen建议的成功功能中:

$.ajax({
    url: 'getData.php',
    type: 'POST',
    success: function(){
        $("#myDiv").load("text/data.txt");
    }
});

我不会让php文件先写入文本文件,然后再读取文本文件;您正在对服务器执行两个ajax调用/请求,其中只需要一个

此外,当两个实例试图同时写入同一文件时,可能会导致服务器出错

如果将getData.php更改为回显值,而不是将其存储在文本文件中,则可以将javascript简化为:

$("#myDiv").load("getData.php");

@事实上,它们在html4和html5中都是这样。ok,现在加载了div,但在节目中隐藏了div,但当我将文本文件内容复制到html div中时,sow不起作用,但当我从文本文件show中抓取数据时,slideshow起作用stops@jqbeginner您的show函数可能未绑定到加载的新项目。使用jquery.on将它们绑定到幻灯片类。不起作用,但我一直在尝试,但php代码在注释php代码页时会阻止在ajax代码中创建txt文件,通常加载$.ajax{url:'getData.php',键入:'POST',success:function{*/?>document.getElementByIdmydiv.innerHTML=some text;};非常接近,但仍然有一个小问题,我正在使用ajax代码读取文本文件var txtFile=new XMLHttpRequest;txtFile.openGET,text/data.txt,true;txtFile.onreadystatechange=函数{if txtFile.readyState==4{if txtFile.status==200{allText=txtFile.responseText;}}}}}}}txtFile.sendnull;当我使用$mydiv.htmlaltext时,它可以工作,但不能从head部分将html写入div,它不能与幻灯片一起工作;在div内部,它什么也不打印,无法调用在head@jqbeginner您何时拨打$mydiv.htmllltext;?您是否尝试过allText=txtFile.responseText$mydiv.htmllltext;?我在页面中使用之前尝试过,但在幻灯片中没有。我不知道为什么从文本文件复制代码并粘贴到div中时,代码可以正常工作。幻灯片正常工作,所以问题是,如果数据从头部回显,幻灯片会坏掉,代码中没有任何更改。这是代码,这是文本文件代码并不复杂,只是一个幻灯片和2个php文件的小项目2从数据库获取数据保存到文本文件,另一个从文本文件回显数据,可能存在绑定问题。