使用php填写现有表

时间:2011-10-31 00:33:29

标签: php

我的页面上有一个空白的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);

2 个答案:

答案 0 :(得分:1)

如果你有上面的代码打印你的ajax响应,你可以在你的javascript上执行此操作:

document.getElementById('container-id-here').innerHTML(your_ajax_response_text);

答案 1 :(得分:1)

所以这里有一些你可以做的事情:

  1. (最差)将整个表发回到PHP的ajax调用中,然后让php添加你的列,并返回更新的表(错误的计划,大量未更改的数据传输)

  2. (更好)Ajax调用使用新列返回一个全新的表(更好)

  3. (最佳)Ajax调用用数据获取数组或对象,然后使用javascript迭代表并添加数据

  4. 伪码:

    //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;
              }
         }
    }
    
    祝你好运!