使用jQuery从文件加载选择选项

时间:2015-05-06 13:23:02

标签: php jquery

我尝试使用磁盘上的文件动态添加和删除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)。看起来文件内容存储在某处,我只得到它的副本。

有什么想法吗?

2 个答案:

答案 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);
    }
});