2012-01-24 35 views
2
<form action="next.php" method="post"> 
<table> 
    <tr> 
     <td>Paul</td> 
     <td>Attuck</td> 
     <td>[email protected]</td> 
     <td><input type="checkbox" name="list[]" value="[email protected]" /></td> 
    </tr> 
    <tr> 
     <td>James</td> 
     <td>Bond</td> 
     <td>[email protected]</td> 
     <td><input type="checkbox" name="list[]" value="[email protected]" /></td> 
    </tr> 
    <tr> 
     <td>Name</td> 
     <td>Last</td> 
     <td>[email protected]</td> 
     <td><input type="checkbox" name="list[]" value="[email protected]" /></td> 
    </tr> 
</table> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

,如果我檢查所有複選框,發送形式next.php我可以:輸入類型值中的數組複選框?

print_r($_POST['tags']); 
// output 
Array 
(
    [0] => [email protected] 
    [1] => [email protected] 
    [2] => [email protected] 
) 

我怎樣才能讓:

Array 
    (
     [0] => array ([0] => Paul 
         [1] => Attuck 
         [2] => [email protected]) 
     [1] => array ([0] => James 
         [1] => Bond 
         [2] => [email protected]) 
     [2] => array ([0] => Last 
         [1] => Name 
         [2] => [email protected]) 
    ) 

?我嘗試使用序列化,但本作「 - 不能夠在HTML表單中使用此

+1

真的沒有辦法達到你想要的。您必須使用一些解決方法,如Rickesh和Eugen發佈的解決方法 – xbonez

回答

5

如果你確保有在名稱字段(我用|這裏)禁止一個字符,你可以做

<tr> 
     <td>Paul</td> 
     <td>Attuck</td> 
     <td>[email protected]</td> 
     <td><input type="checkbox" name="list[]" value="Paul|Attuck|[email protected]" /></td> 
</tr> 

而且會得到

print_r($_POST['tags']); 
// output 
Array 
(
    [0] => Paul|Attuck|[email protected] 
    [1] => James|Bond|[email protected] 
    [2] => Last|Name|[email protected] 
) 

您可以通過

$names=array(); 
foreach ($_POST['tags']) as $tag) 
    $names[]=explode('|',$tag,3); 
3

你必須給像值:

value="Paul,Attuck,[email protected]" 

,並且比,爆發,你會得到你的願望陣列

1

變換的一般做法是,以提交可以在隨後的數據庫查詢將返回數據的其餘部分使用的值。我建議你先考慮這種方法。

如果您確實想要提交所有字段,最簡單的方法是將它們與字段中未使用的字符分開,然後在服務器上進行拆分,就像其他人所評論的那樣。

相關問題