使用PHP和HTML表编辑CSV数据

时间:2014-03-21 06:38:24

标签: php codeigniter csv

我有一个包含许多数据的CSV文件。

我使用PHP在WEB中阅读和查看它。我需要像ADD, EDIT and DELETE这样的功能。我已使用aappend完成了ADD。我将在HTML表格中添加数据,并自动将其添加到CSV文件中。我没有在这里使用数据库。

我现在的问题是编辑。如果我想使用HTML表格编辑CSV文件中的某些数据,如果我希望自动将其更新为我的CSV文件,那该怎么办?我怎么能这样做?

我已经尝试了w, w+, r+,但它没有用。顺便说一下,我在这里使用CODEIGNITER。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我会在服务器上保留逻辑并执行所有csv渲染事件驱动。 在这里你有一个很好的csv lib:https://github.com/goodby/csv

所以这个过程就是这样的:

  • 客户端:从服务器加载预先格式化的csv(通过php)并以html
  • 显示
  • 客户端:执行MVVM绑定等。
  • 客户端:如果调用某个事件(如添加,更新等),则发送 eventrequest to server
  • 服务器:接收事件 - >流程(如果需要,可以进行交易) - >重新格式化csv,保存它 并发送回客户
  • 客户端:检索并应用MvvM绑定

否则你需要客户端和服务器中的冗余csv逻辑,这不是一个好方法。 你知道我的意思吗?或者我应该为你做一个例子吗?

csv库支持复杂的csv绑定,并且易于附加,如:

$csv = new parseCSV();
$csv->parse('yourcsv.csv');
$csv->data[1] = array('updatekey' => 'new Value');
$csv->save();

客户端示例:

//retrieve your csv (view rendered or async with ajax
var csv;

var mutableDataArray = $.csv.toArray(csv);

//do manipulation here
//for example
mutableDataArray[0].name = 'A new name to first record';

//serialize back
var newCsv = "";
for(var i in mutableDataArray) {
    var data = mutableDataArray[i].join(",");
    newCsv += i < mutableDataArray[i].length ? data + "\n" : data;
}

//do something with newCsv