2015-05-04 6 views
0

Я следующий кодом пяти флажков с аналогичным name=check[]Как получить несколько значений флажка в PHP

<input type='checkbox' value='1' name='check[]'/> 
<input type='checkbox' value='1' name='check[]'/> 
<input type='checkbox' value='1' name='check[]'/> 
<input type='checkbox' value='1' name='check[]'/> 
<input type='checkbox' value='1' name='check[]'/> 

Я пошлю эти данные на PHP страницу с помощью формы и извлечением этих данных в PHP следующего

<?php 
$check=$_POST['check']; 
print_r($check); 
?> 

Выход для трех флажков проверяется всегда будет следующим даже если я проверить CheckBox не 1,2,5 или 1,3,4

Array 
(
    [0] => 1 
    [1] => 1 
    [2] => 1 
) 

Для примера:

Если есть общие пяти флажков и я только проверил 1-й и 3-й флажок, то мой выход должен быть

Array 
(
    [1] => 1 
    [3] => 1 
) 

или

Array 
    (
     [1] => 1 
     [2] => 0 
     [3] => 1 
     [4] => 0 
     [5] => 0 
    ) 

ответ

2

Браузера отправить значения проверенных флажков, прямо сейчас ваши значения всегда равны 1.

Tr у меняя свой код:

<input type='checkbox' value='1' name='check[]'/> 
<input type='checkbox' value='2' name='check[]'/> 
<input type='checkbox' value='3' name='check[]'/> 
<input type='checkbox' value='4' name='check[]'/> 
<input type='checkbox' value='5' name='check[]'/> 
+0

Это на самом деле так просто, как это должно быть принято –

+0

я не могу изменить значение, его, как истина/ложь опции, поэтому значение = 1 означает, что истинный –

+0

Почему вы не можете изменить значение? Если идентификатор флажка установлен, значение равно true, в противном случае оно ложно. Ваш браузер не будет иметь значения в зависимости от порядка ваших флажков. – Arend

0

получить все значения из флажков, как вы делаете, чем сделать цикл до тех пор пока длина массива и, если конкретное значение любого ключа 1, чем вы можете сделать процесс на это как вам нравится, например,

$data = array(
    [1] => 1 
    [2] => 0 
    [3] => 1 
    [4] => 0 
    [5] => 0 
); 
$output=array(); 
for($i=1; $i<=count($data); $i++) 
{ 
    if($data[$i])== 1) 
     $output[] = $data[$i]; 
} 
print_r($output); 

Я надеюсь, что это решит вашу проблему.

С уважением

Смежные вопросы