将复选框选中的行的php数组数据写入文件
我写这篇文章是为了显示csv文件中的数据。当用户选中复选框时,我需要将该行中的所有数据写入文件。我对如何发送阵列数据感到困惑将复选框选中的行的php数组数据写入文件,php,arrays,post,checkbox,Php,Arrays,Post,Checkbox,我写这篇文章是为了显示csv文件中的数据。当用户选中复选框时,我需要将该行中的所有数据写入文件。我对如何发送阵列数据感到困惑 <form action="SAP_Conversion.php" method="POST" id="submit_to_XML"> <? $row = 1; $records[0] = 1; if (($handle = fopen("upload/Akron.csv", "r")) !== FALSE) { while (($da
<form action="SAP_Conversion.php" method="POST" id="submit_to_XML">
<?
$row = 1;
$records[0] = 1;
if (($handle = fopen("upload/Akron.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$records[] = $data;
echo "<div id=\"row\">
<div id=\"num\">" .$row. "</div>
<div class=\"field\">
<input name=\"checkbox" . $row . "\" type=\"checkbox\" value=\"$row\" />
</div>";
$row++;
for ($c=0; $c < $num; $c++) {
echo "<div class=\"field\">" . $data[$c] . "</div>";
}
echo "</div>";
}
fclose($handle);
}
要发送数组,请在元素名称中添加[]。实际数值是可选的。所以,拿着你所拥有的,改变吧
echo "<div id=\"row\"><div id=\"num\">" .$row. "</div>
<div class=\"field\"><input name=\"checkbox" . $row . "\" type=\"checkbox\" value=\"$row\" /></div>";
echo'.$row。"
";
到
echo'.$row。"
";
然后在PHP中提交表单后,POST['checkbox']
将成为一个数组。我重写了您的脚本,因为我发现它不干净且难以阅读
$fileHandle = fopen("upload/Akron.csv", "r");
$records = array();
$markup = '';
if ($fileHandle)
{
while ($row = fgetcsv($handle, 1000, ","))
{
$records[] = $row;
}
foreach ($records AS $key => $record)
{
$countFields = count($record);
$markup =
'<div id="row">
<div id="num">' . $key . '</div>
<div class="field">
<input name="rows[]" type="checkbox" value="' . $key . '" />
</div>';
for ($c=0; $c < $countFields; $c++)
{
$markup .=
'<div class="field">
' . $record[$c] .
'</div>';
}
$markup .= '</div>';
}
fclose($handle);
echo $markup;
}
我主要关心由$data[$c]=输出的数据,这是我需要传递的数组。一旦用户选中复选框,我需要在提交时打印相应的数组行。
$fileHandle = fopen("upload/Akron.csv", "r");
$records = array();
$markup = '';
if ($fileHandle)
{
while ($row = fgetcsv($handle, 1000, ","))
{
$records[] = $row;
}
foreach ($records AS $key => $record)
{
$countFields = count($record);
$markup =
'<div id="row">
<div id="num">' . $key . '</div>
<div class="field">
<input name="rows[]" type="checkbox" value="' . $key . '" />
</div>';
for ($c=0; $c < $countFields; $c++)
{
$markup .=
'<div class="field">
' . $record[$c] .
'</div>';
}
$markup .= '</div>';
}
fclose($handle);
echo $markup;
}
foreach ($_POST['rows'] AS $key)
{
$selectedRecords[] = $records[$key];
}