2012-01-24 74 views
0

我已經通過一些帖子看起來在這裏,但我還是努力讓我的代碼才能正常工作....如何提交一個HTML表單到一個PHP數組

我有一個形式,是被動態創建,所以我永遠不知道它會有多少行,列的數量是靜態的。這是我當前的代碼...

echo '<form name = "confirmPlayers" enctype="multipart/form-data" action="page.php" method="POST">'; 
    echo '<input type="hidden" name="confirm" value="1"/>'; 
    echo '<input type="hidden" name="pg_function" value="match"/>'; 
    echo '<table border = "1">'; 
    echo '<tr> <td colspan = "7"> <b>Matched Members</b></td> </tr>'; 
    echo '<tr> <td> Match </td> <td>Division</td> <td>Number</td> <td>Upload Number</td> <td>KDGA Name</td> <td>Upload Name</td> <td>Score</td></tr>'; 

    while($row = mysql_fetch_array($result)){ 
     echo "<tr>"; 
     echo '<td> <input type="checkbox" name="match_chkBox[]" value="1" checked>'; 
     echo '<td> ' . $row['division'] . ' </td>'; 
     echo '<td> ' . $row['mplayer_number'] . ' </td>'; 
     echo '<td> ' . $row['tplayer_number'] . ' </td>'; 
     echo '<td> ' . $row['mfirst_name'] . ' ' . $row['mlast_name'] . ' </td>'; 
     echo '<td> ' . $row['tfirst_name'] . ' ' . $row['tlast_name'] . ' </td>'; 
     echo '<td> ' . $row['score'] . ' </td>'; 
     echo "</tr>"; 
    } 
    echo '<tr> <td>'; 
    echo '<input type="submit" value="Submit" />'; 
    echo '</td> </tr>'; 
    echo '</table> </form>'; 

我試過幾個變化上創建陣列,但只是似乎是創建一個爛攤子。我基本上需要從每個單元返回的所有信息,以傳遞到數據庫進行進一步處理。我希望能爲生成的表中的每一行對應的行返回一個數組,然後顯示每列的鍵/索引。現在,如果我使用print_r($ _ POST ['match_chkBox']);那麼它會正確返回我在提交之前檢查過的行數,但是其他任何更改都不會。

希望你能給予任何幫助......這讓我瘋狂!

+1

你目前的HTML輸出和預期的HTML輸出的UNIQUE_ID? –

回答

1

嘗試給值的專屬編號

echo '<td> <input type="checkbox" name="match_chkBox[]" value=value=\"".$row['id']."\"checked>'; 
+0

已經意識到我在收到答案後忘了對此發表評論。這讓我走上了正軌。我結束了使用jQuery而不是上面的代碼,但將每個查詢結果中的唯一列分配給生成的複選框的名稱和ID屬性。 – pironix

0

如果我是你,我會後$行[ID](如天使定義)只在從數據庫中我的PHP代碼獲取相應的數據。

,但如果你想利用所有數據與您可以根本就以下..

<pre> 
$i=0; 
while($row = mysql_fetch_array($result)){ 
    $i++; 
    echo "<tr>"; 
    echo '<td> <input type="checkbox" name="match_chkBox[$i]" value="'.$row['id'].'" checked>'; 
    echo '<td> ' . $row['division'] . ' <input type="hidden" name="division['.$i.']"> </td>'; 
    echo '<td> ' . $row['mplayer_number'] . ' <input type="hidden" name="mplayer_number['.$i.']"> </td>'; 
// and so on.... 
    echo "</tr>"; 
} 
</pre> 

以來HTML表單只發送選中複選框,可以有下面的代碼來檢查用戶選擇服務器

<pre> 
    foreach($_POST['match_chkBox'] as $k=>$value) { 
     $divi = division[$k]; 
     $mplay = mplayer_number[$k]; 
     //now insert into your database. 
    } 
</pre> 

希望這將有助於

0

通過在形式張貼,match_chkBox [] WIL複選框的值設置爲行的唯一重點,有l包含唯一鍵。看到

echo"<input type='checkbox' name='match_chkBox[]' value=\"$row[unique_id]\" />"; 

使用查看源代碼,如果每行的值設置到該行

相關問題