0

我不是贸易开发人员或<--仅使用免责声明

所以,我有一个包含数百个输入的 html 表单,本质上是一个有限的模拟电子表格。

表格为 3 列 x 150 行。

为了演示,假设表单/表格结构如下所示:

<table>
    <tr>
        <td><input name="this_row_1" /><input name="that_row_1" /><input name="the-other_row_1" /></td>
    </tr>
    <tr>
        <td><input name="this_row_2" /><input name="that_row_2" /><input name="the-other_row_2" /></td>
    </tr>
    <tr>
        <td><input name="this_row_3" /><input name="that_row_3" /><input name="the-other_row_3" /></td>
    </tr>
    <!-- ( . . . ) -->
    <tr>
        <td><input name="this_row_150" /><input name="that_row_150" /><input name="the-other_row_150" /></td>
    </tr>
</table>

当表单发布到 PHP 时,我正在寻找正确的语法来在循环中分配处理程序(正确的词?)。

我对编码了解不多,但我一直在玩和测试这种类型的变体/概念:

for ($i = 1; $i < $_POST['[name="this_row_' + i + '"]']; $i++)
{
   echo $_POST['[name="this_row_' + i + '"]'][$i] + "," + $_POST['[name="that_row_' + i + '"]'][$i] + "," + $_POST['[name="the-other_row_' + i + '"]'][$i];
}

但显然它不起作用,如果还没有提示,我想编写一个带有列标题的新 CSV 文件作为最终游戏。

任何帮助表示赞赏。

4

2 回答 2

0

试试这个。

$file=fopen(<DIRECTORY_PATH>."file.csv","w");
 if(!$file){
    //error
 }

$this_row=$_POST['this_row'];//consider sanitizing/cleaning the data
$that_row=$_POST['that_row']; //consider sanitizing/cleaning the data
$the_other_row=$_POST['the_other_row']; //consider sanitizing/cleaning the data

$loop=count($this_row); // assuming count of all the other columns are same

$csv_data="";
for($i=0;$i<$loop; $i++){

    $csv_data.=$this_row[$i].", ".$that_row[$i].", ".$the_other_row[$i].", ";
    //remove the last comma
    $csv_data.="\n";
    }
}

fwrite($file,$csv_data);
于 2013-06-03T08:47:37.097 回答
0

让我们从您的标记开始。

如果您有多个表示相同的字段(即应该具有相同的名称和数字,就像在您的示例中一样)。您应该为它们命名name="whateverNameYouWant[]"(是的,它们都使用相同的名称)。这将导致 PHP 将这些输入作为输入数组进行处理,并且您将能够像这样访问它们$_POST["whateverNameYouWant"][42]

当你这样做时,一切都会变得更简单。

至于 CSV,PHP 具有处理 CSV 文件的功能。现在您可以轻松地循环和访问您的 $_POST 变量$_POST["this_row"][$i],等等。

于 2013-06-03T08:54:17.860 回答