2013-08-01 66 views
0

在我的HTML我有這個,將值數組作爲發佈數據傳遞給document.forms []。method?

<tr> 
     <td class="grid_cell" width="5%"> 
      <input type="checkbox" name="workspace_trees_rpt_target" id="<?php echo $t["tree_id"];?>" value="<?php echo $t["tree_id"];?>" /> 
     </td> 
    </tr> 

這是一個循環裏面有啥將顯示爲很多具有不同值的複選框。而在我的劇本我都這樣了,

if(confirm("Delete cannot be undone, click OK button to proceed.")) { 
     document.forms[0].method="POST"; 
     document.forms[0].action="delete.php"; 
     document.forms[0].submit();  
    } 

選擇兩個複選框,並單擊確定按鈕後,然後我去delete.phpprint_r我的帖子的數據。但是當顯示print_r的結果時,它只顯示了一個選中的複選框的值,但我期待着其中的兩個。我怎麼能這樣做,當我檢查多個複選框時,複選框的發佈數據將是選中複選框的值的數組?

回答

2

必須設置的輸入作爲數組名稱:

name="workspace_trees_rpt_target[]" 
0

你給了相同的名稱所有的複選框。所以只能返回一個值。

更改爲

<input type="checkbox" name="workspace_trees_rpt_target[]" id="<?php echo $t["tree_id"];?>" value="<?php echo $t["tree_id"];?>" /> 

然後在你的PHP代碼,你會得到和$ _POST數組[ 'workspace_trees_rpt_target'] []

所以處理這樣的:

if (isset($_POST['workspace_trees_rpt_target'])) { 
    // at least one checkbox has been ticked 
    foreach ($_POST['workspace_trees_rpt_target'] as $checkboxe) { 
     // do whatever $checkbox it will be set to the value="" that you set earlier 
    } 
}