2015-09-17 2 views
0

У меня есть анкета с 5 вопросами, каждая из которых имеет 5 переключателей. Теперь я хочу получить данные этой формы после нажатия кнопки «Отправить». Я застрял в заполнении массива со значениями этих переключателей, отправленных методом POST.PHP: заполнение массива со значениями формы

код, который я написал бросает ошибку: "Примечание: Undefined индекс: 'radio11' в E: \ XAMPP \ HTDOCS \ dataCollect \ form1.php в строке 11"

Код прилагается ниже:

<?php 
if (isset($_POST['btnForm1'])){ 
for($count = 1; $count < 6; $count++){ 
$radioName = "radio1".$count; 
$arrForm1 = array($_POST["'".$radioName."'"]); 
}} 
<?> 
<html> 
<body> 
<form name="ESForm" action="form1.php" method="post"> 
<table name="ESTable" style="oTab1"> 
<tr> 
    <td style="oRow">1. AAAAAA <br> 
    <input type="radio" name="radio11" value="1">Never<br> 
    <input type="radio" name="radio11" value="2">Seldom<br> 
    <input type="radio" name="radio11" value="3">Sometimes<br> 
    <input type="radio" name="radio11" value="4">Often<br> 
    <input type="radio" name="radio11" value="5">Always<br> 
    </td> 
</tr> 
<tr> 
    <td style="oRow">2. AAAAAA<br> 
    <input type="radio" name="radio12" value="1">Never<br> 
    <input type="radio" name="radio12" value="2">Seldom<br> 
    <input type="radio" name="radio12" value="3">Sometimes<br> 
    <input type="radio" name="radio12" value="4">Often<br> 
    <input type="radio" name="radio12" value="5">Always<br> 
    </td> 
</tr> 
<tr> 
    <td style="oRow">3. AAAAA <br> 
    <input type="radio" name="radio13" value="1">Never<br> 
    <input type="radio" name="radio13" value="2">Seldom<br> 
    <input type="radio" name="radio13" value="3">Sometimes<br> 
    <input type="radio" name="radio13" value="4">Often<br> 
    <input type="radio" name="radio13" value="5">Always<br> 
    </td> 
</tr> 
<tr> 
    <td style="oRow">4. AAAaA <br> 
    <input type="radio" name="radio14" value="1">Never<br> 
    <input type="radio" name="radio14" value="2">Seldom<br> 
    <input type="radio" name="radio14" value="3">Sometimes<br> 
    <input type="radio" name="radio14" value="4">Often<br> 
    <input type="radio" name="radio14" value="5">Always<br> 
    </td> 
</tr> 
<tr> 
    <td style="oRow">5. AAAAA <br> 
    <input type="radio" name="radio15" value="1">Never<br> 
    <input type="radio" name="radio15" value="2">Seldom<br> 
    <input type="radio" name="radio15" value="3">Sometimes<br> 
    <input type="radio" name="radio15" value="4">Often<br> 
    <input type="radio" name="radio15" value="5">Always<br> 
    </td> 
</tr> 
<tr> 
    <td><input type="submit" name="btnForm1" value="Submit"></td>  
</tr> 
</table> 
</form> 
</body> 
</html> 
+0

Если для переключателя не выбрано значение, ключ не отправляется. Поэтому для каждого значения вам понадобится 'isset ($ _ POST [" radio11 "])' (или аналогичный). – Halcyon

+0

Уважаемый Halcyon, не следует ли полагаться на использование кнопки POST для отправки? Потому что я хочу, чтобы PHP забирал значения после нажатия кнопки. –

+0

'$ _POST' в порядке, альтернативой будет' $ _GET', который имеет ту же «проблему». – Halcyon

ответ

0

Это неверно:

$arrForm1 = array($_POST["'".$radioName."'"]); 
         ^^^^----------^^^^----useless 

в "'" котировки абсолютно ненужным. Это все, что вам нужно:

$arrForm1 = array($_POST[$radioName]); 

И зачем переносить значение переключателя в массив. В любом случае вы всегда сможете вернуть только одно значение из каждого переключателя.

+0

Спасибо, Марк. Причина, по которой я намерен деформировать значения в массиве как последующие разделы, у которых есть еще много вопросов. Хотите захватить эти значения в массив и отправить их в базу данных в конце вопросника. Считаете ли вы, что этот подход неэффективен? –

+0

вы создаете новый массив с одним элементом на каждой итерации, так что это по-прежнему бессмысленная работа. если вы хотите построить массив значений, тогда это должно быть '$ arrForm1 [] = $ _POST [$ radioName]' –

+0

Я получил вашу точку зрения на этом марке. Простите за мое невежество, поскольку я абсолютно новичок в PHP, но как я могу получить значение от каждой из 5 групп радиокнопки в PHP? Я попробовал базовый подход просто назначить его переменной, но он даже не распознает имена переключателей. Похоже, что PHP может получать значения только одного набора переключателей. См. Код ниже: if (isset ($ _ POST [$ btnName])) { $ valRdo1 = stripslashes ($ _ POST ['r11']); } –

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