2014-02-14 19 views
0

В моей форме, у меня есть x группы радиокнопок сгенерированная:Не удается получить значение кнопок радио из нескольких радио групп

for ($j = 0; $j < $x; $j++) { 
    <input type="radio" name="gender<?php echo $x; ?>" value="male" />Male 
    <input type="radio" name="gender<?php echo $x; ?>" value="female" />Female 
    ... 
} 

Когда после передают, я стараюсь, чтобы получить эти значения:

for ($j = 0; $j < $x; $j++) { 
    echo $_POST['gender'.$j]; 
    ... 
} 

я получаю эти сообщения об ошибках:

Notice: Undefined index: gender0 in ... 
Notice: Undefined index: gender1 in ... 
Notice: Undefined index: gender2 in ... 

Но я вижу эти радио-группы в моей разметке правильной Определены:

<input type="radio" value="male" name="gender0">Male 
<input type="radio" value="female" name="gender0">Female 
... 
<input type="radio" value="male" name="gender1">Male 
<input type="radio" value="female" name="gender1">Female 

Так почему же эти сообщения об ошибках?

+1

Просто сделать 'var_dump ($ _ POST);' на начало вашего приемного сценария, то вы точно увидите, что получите. И вам известно, что вы получаете значения только для переключателей, которые на самом деле проверены, не так ли? – CBroe

+0

О, дорогой, он не был проверен. Спасибо, CBroe. – drake035

ответ

1

Просто введите var_dump($_POST); в начале вашего сценария получения, после чего вы увидите, что именно вы получите.

И вы знаете, что получаете значения только для переключателей, которые на самом деле проверены, правильно?
Итак, если вы не можете быть уверены, что у пользователя будет установлен переключатель на группу, то отметьте, доступна ли эта запись POST перед ее получением, используя isset или empty. .

Btw, еще более удобный способ работы с данными, как это, чтобы назвать поля формы таким образом, что получает вас массив в PHP, в первую очередь:

<input type="radio" name="gender[0]" value="male" />Male 
<input type="radio" name="gender[0]" value="female" />Female 

<input type="radio" name="gender[1]" value="male" />Male 
<input type="radio" name="gender[1]" value="female" />Female 

- что будет получить вам массив в $ _POST [ «гендер»], что вы можете перебрать с петлей Еогеасп, как это:

if(isset($_POST['gender']) && is_array($_POST['gender'])) { 
    foreach($_POST['gender'] as $index => $value) { 
    // … 
    } 
} 
Смежные вопросы