2010-11-01 93 views
0

我寫這個來顯示來自csv文件的數據。當用戶選擇一個複選框時,我需要將該行內的所有數據寫入文件。我很困惑如何發送數組數據。爲複選框選中的行寫入php數組數據

<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); 
} 

回答

1

發送數組add []添加到元素的名稱。實際的數值是可選的。因此,需要你有什麼,改變

echo "<div id=\"row\"><div id=\"num\">" .$row. "</div> 
    <div class=\"field\"><input name=\"checkbox" . $row . "\" type=\"checkbox\" value=\"$row\" /></div>"; 

echo "<div id=\"row\"><div id=\"num\">" .$row. "</div> 
    <div class=\"field\"><input name=\"checkbox[" . $row . "]\" type=\"checkbox\" value=\"$row\" /></div>"; 

然後在PHP $_POST['checkbox']將是一個數組提交表單後。

+0

我主要關心的是由$數據[$ C] =這是我需要傳遞的陣列打印出來的數據。 一旦用戶選擇了一個複選框,我需要在提交時打印相應的數組行。 – MG1 2010-11-01 16:52:22

1

我重寫了你的腳本,因爲我覺得它不太清楚,難以閱讀。

$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; 
} 

現在解決您的問題,據我瞭解。 使用我的腳本版本,您將得到一個整潔的$ records數組和一個$ _POST ['rows']數組,其中包含用戶請求(檢查)的所有$記錄密鑰。

您現在可以從$ records數組輕鬆獲得所需的數據。

實施例:

foreach ($_POST['rows'] AS $key) 
{ 
    $selectedRecords[] = $records[$key]; 
}