我尝试使用磁盘上的文件动态添加和删除html选择字段中的选择选项来存储这些选项。
我试图从select中删除选项。我使用一个jQuery函数向PHP发送一个请求,从选择列表中删除哪个选项:
$.post("buttons.php",{name: value}, function());
PHP部分从列表中删除此行:
$str = $_POST['name'];
$file = fopen("../list.csv", "rw");
while(! feof($file))
{
$line = fgets($file);
$pieces = explode(",", $line);
if ($pieces[0]!=$str)
file_put_contents('../tmp.csv', $line,FILE_APPEND);
}
copy ("../tmp.csv","../list.csv");
fclose($file);
到目前为止一切顺利。然后我尝试使用选择选项读取更新的文件并更改选项内容:
var client = new XMLHttpRequest();
client.open('GET', '../list.csv', false);
client.send(null);
if (client.status === 200) {
alert('response text = ' + client.responseText);
}
words = file_content.split("\n");
for (var i = 0; i < words.length; i++) {
names = words[i].split(",");
if (names[0]!=0)
ddl.append("<option style='color:black' value='" + names[0] + "'>" + names[0] + "</option>");
}
问题在于,当我在jQuery中再次读取list.csv
文件(在PHP更新之后)更新选择输入时,我获得与以前相同的list.csv
文件内容,但我看到了文件内容已更改(只需在文本编辑器中打开list.csv
)。看起来文件内容存储在某处,我只得到它的副本。
有什么想法吗?
答案 0 :(得分:0)
使用您的文件随机查询字符串
var rand = Math.random();
client.open('GET', '../list.csv?rand='+rand, false);
或使用 获取文件的POST方法
答案 1 :(得分:0)
由于您使用的是jQuery,为什么不
$.ajax( {
url: "../list.csv",
type: "GET",
cache: false, // this is the parm you want
success: function(data) {
var lines = data.split("\n"), options=[];
$.each(lines,function(_,line) {
var name = line.split(",")[0];
if (name!=0) {
options.push("<option style='color:black' value='" + name + "'>" + name + "</option>");
}
});
if (options.length>0) ddl.append(options);
}
});