我已经决定要完成我的任务,我需要获取在我的第一页上传的CSV文件,然后构建一个表单,用它填充输入的CSV值。
我有一个正常运行的CSV上传,但这是在保存之前查看CSV并对字段进行编辑。我有一个while循环,我认为我应该在里面构建表单。唯一的技巧是我构建了一个CSV数据数组,在上传时处理它,它的长度为229个元素。我需要构建表单名称来镜像它,所以我将基本上命名为229表单字段,这很好。这是当单击按钮时成功将CSV加载到表中的代码:
$file = $_FILES["file"]["tmp_name"];
$handle = fopen($file, "r");
$maxPreviewRows = PHP_INT_MAX; // this will be ~2 billion on 32-bit system, or ~9 quintillion on 64-bit system
$hasHeaderRow = true;
echo '<table>';
/*WE WILL NEED TO QA CONDITIONS AND HIGHLIGHT IN RED HERE. ALSO NEED BORDER STYLINGS*/
if ($hasHeaderRow) {
$headerRow = fgetcsv($handle);
echo '<thead><tr>';
foreach($headerRow as $value) {
echo "<th>$value</th>";
}
echo '</tr></thead>';
}
echo '<tbody>';
$rowCount = 0;
while ($row = fgetcsv($handle)) {
echo '<tr>';
foreach($row as $value) {
echo "<td>$value</td>";
}
echo '</tr>';
if (++$rowCount > $maxPreviewRows) {
break;
}
}
echo '</tbody></table>';
}
因此,成功显示整个CSV(每行6行,229列)以进行预览。现在我只需要使每个字段都可编辑,然后在提交时插入整个表单。我知道如何将表单插入数据库,所以现在我只需要了解如何在while循环中构建表单并为每个输入创建名称,以及如何使用实际的CSV数据填充输入。
答案 0 :(得分:0)
这是您创建表单的方法。每个表单元素都命名为row1col1,row1col2,ro1col3等......
$file = $_FILES["file"]["tmp_name"];
$handle = fopen($file, "r");
$maxPreviewRows = PHP_INT_MAX; // this will be ~2 billion on 32-bit system, or ~9 quintillion on 64-bit system
$hasHeaderRow = true;
echo '<form>\n';
echo '<table>';
/*WE WILL NEED TO QA CONDITIONS AND HIGHLIGHT IN RED HERE. ALSO NEED BORDER STYLINGS*/
if ($hasHeaderRow) {
$headerRow = fgetcsv($handle);
echo '<thead><tr>';
foreach($headerRow as $value) {
echo "<th>$value</th>";
}
echo '</tr></thead>';
}
echo '<tbody>';
$rowCount = 0;
while ($row = fgetcsv($handle)) {
$colCount = 0;
echo '<tr>';
foreach($row as $value) {
echo "<td><input name='row".$rowCount."col".$colCount."' type='text' value='$value' /></td>";
$colCount++;
}
echo '</tr>';
if (++$rowCount > $maxPreviewRows) {
break;
}
}
echo '</tbody></table>';
echo '<input type=\'submit\' value=\'Submit\' >';
echo '</form>';