我的页面上有一个空白的html表(列)。我有一个带有去年信息的csv文件 该列可用,但我不想最初将这些值写入表中 单元格(因为可能存在需要手动输入的新信息)。我想要 制作一个可以填充此列的按钮。什么是最好的方式 对这个?由于我想要动态输入信息,我显然需要使用 ajax调用,我会调用一个php文件,因为它有一个有用的函数fgetcsv(),但是 我可以使用此功能将信息输入现有表吗?我能够使用PHP来 用这个信息创建一个表,但据我所知,php并不知道 DOM ...我必须以某种方式打包整个列信息并让javascript做 工作,但我有点困惑...
以下是我如何使用php创建表格的片段。
$file = fopen("SGS_Fall_Booklist.csv", "r");
$entry= fgetcsv($file);
echo $entry[0] . $_GET["program"] . $entry[1] . $GET["school"] .
$entry[2] . $GET["term"];
echo "<br>AutoFill (last years ISBN's)<br><input id='checkall' type='checkbox' </input>";
echo "<table><tr>
<th>Edit</th>
<th class='coursename'>" . $entry[6] . "</th>
<th class='startdate'>" . $entry[7] . "</th>
<th class='booktitle'>" . $entry[17]. "</th>
<th class='author'>" . $entry[18]. "</th>
<th class='isbn'>" . $entry[16]. "</th>
</tr>";
while(! feof($file))
{
$entry = fgetcsv($file);
echo "<tr>
<td><input type='checkbox'></input></td>
<td class='coursename'>" . $entry[6] . "</td>
<td class='startdate'>" . $entry[7] . "</td>
<td class='booktitle'>" . $entry[17]. "</td>
<td class='author'>" . $entry[18]. "</td>
<td class='isbn'></td>
</tr>";
}
echo "</table>";
fclose($file);
答案 0 :(得分:1)
如果你有上面的代码打印你的ajax响应,你可以在你的javascript上执行此操作:
document.getElementById('container-id-here').innerHTML(your_ajax_response_text);
答案 1 :(得分:1)
所以这里有一些你可以做的事情:
(最差)将整个表发回到PHP的ajax调用中,然后让php添加你的列,并返回更新的表(错误的计划,大量未更改的数据传输)
(更好)Ajax调用使用新列返回一个全新的表(更好)
(最佳)Ajax调用用数据获取数组或对象,然后使用javascript迭代表并添加数据
伪码:
//do your ajax request
foreach(newColumnValues AS key=>value) {
foreach(document.getElementByID("yourtable").elements) {
//If the ordering can change, check the key first, otherwise you could
//just go through every element
if(element[0] == key) {
element[1] = value;
}
}
}
祝你好运!