Php jQuery AJAX调用从txt文件获取错误值
我在使用jQuery AJAX读取服务器上的txt文件时遇到了一个问题。基本上,我有3个文件,它们都在同一个目录下的服务器上(以后不会出现)。一个HTML文件包含一个按钮,当您单击该按钮时,它将启动一个AJAX请求,然后该请求将一个字符串(默认字符串)发送到一个PHP文件,该文件将创建一个txt文件。我还有另一个HTML文件,它有一个1500毫秒的简单设置间隔,它得到的是txt文件的值,如果这个值是==='defaultstring',它会进行另一个AJAX调用,将文本文件重写为空。问题是,我总是在setInterval中获取“默认字符串”,并且只有在浏览器中打开txt文件时,HTML2文件中的ajax才会返回空字符串。这是正常的行为还是我遗漏了什么 要插入“默认字符串”的HTML文件 HTML文件,如果字符串为“默认字符串”,则清空txt文件 将文本插入txt文件的PHP文件(请记住,txt文件不是由PHP创建的,我是在本地创建的)Php jQuery AJAX调用从txt文件获取错误值,php,jquery,ajax,post,readfile,Php,Jquery,Ajax,Post,Readfile,我在使用jQuery AJAX读取服务器上的txt文件时遇到了一个问题。基本上,我有3个文件,它们都在同一个目录下的服务器上(以后不会出现)。一个HTML文件包含一个按钮,当您单击该按钮时,它将启动一个AJAX请求,然后该请求将一个字符串(默认字符串)发送到一个PHP文件,该文件将创建一个txt文件。我还有另一个HTML文件,它有一个1500毫秒的简单设置间隔,它得到的是txt文件的值,如果这个值是==='defaultstring',它会进行另一个AJAX调用,将文本文件重写为空。问题是,我总
那么,为什么我总是从HTML2(console.log(“我得到了默认字符串”);)获取控制台日志,即使我重置了txt文件的值。我知道我重置了它,因为我在浏览器中刷新了txt文档,但它是空的,并且当时我停止获取控制台。log将setinterval函数放在按钮单击函数中 像这样:
$(document).ready(function(){
$('button').on('click', function() {
console.log('you clicked');
$.ajax({
url: 'write_to_file.php',
type: 'POST',
data: {insertValue: 'default string'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
setInterval(function(){
$.ajax({
url: 'textfile.txt',
type: 'GET',
dataType: 'text'
})
.done(function(data) {
if(data === 'default string') {
console.log("I got the default string");
$.ajax({
url: 'write_to_file.php',
type: 'POST',
data: {insertValue: ''},
});
}
})
.fail(function() {
console.log("error");
});
}, 1500);
});
});
用上述代码替换整个jquery代码,
我已经测试过了,效果很好
希望这对您有所帮助:)将setinterval函数放入按钮单击函数中 像这样:
$(document).ready(function(){
$('button').on('click', function() {
console.log('you clicked');
$.ajax({
url: 'write_to_file.php',
type: 'POST',
data: {insertValue: 'default string'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
setInterval(function(){
$.ajax({
url: 'textfile.txt',
type: 'GET',
dataType: 'text'
})
.done(function(data) {
if(data === 'default string') {
console.log("I got the default string");
$.ajax({
url: 'write_to_file.php',
type: 'POST',
data: {insertValue: ''},
});
}
})
.fail(function() {
console.log("error");
});
}, 1500);
});
});
用上述代码替换整个jquery代码,
我已经测试过了,效果很好
希望这对您有所帮助:)
<?php
$insertValue = $_POST['insertValue'];
$myfile = fopen("textfile.txt", "w+") or die("error!");
fwrite($myfile, $insertValue);
fclose($myfile);
?>
$(document).ready(function(){
$('button').on('click', function() {
console.log('you clicked');
$.ajax({
url: 'write_to_file.php',
type: 'POST',
data: {insertValue: 'default string'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
setInterval(function(){
$.ajax({
url: 'textfile.txt',
type: 'GET',
dataType: 'text'
})
.done(function(data) {
if(data === 'default string') {
console.log("I got the default string");
$.ajax({
url: 'write_to_file.php',
type: 'POST',
data: {insertValue: ''},
});
}
})
.fail(function() {
console.log("error");
});
}, 1500);
});
});