将复选框选中的行的php数组数据写入文件

将复选框选中的行的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

我写这篇文章是为了显示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 (($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];
}