Форма с переключателями и флажками отправки на php - PullRequest
0 голосов
/ 22 сентября 2011

Harmiih действительно помог мне с моим сценарием (/4545317/html-form-name-peremennaya-php). В основном у меня есть таблица с вопросами. Форма извлекает вопросы из таблицы, а затем мне нужны выбранные ответы, чтобы перейти к answer.php. Все работает с радио кнопки, но с флажками он отправляет только последний выбранный флажок. Может кто-нибудь помочь мне?

форма

$sql1="SELECT * FROM ex_question WHERE test_name = '$tid' AND q_type = 'mr' ORDER BY RAND() LIMIT 5";
$result1=mysql_query($sql1);

echo "<form method='post' action='answer.php'>";

while($row1 = mysql_fetch_array($result1))
{
    $test_name=$row1['test_name'];
    $q_nr=$row1['q_nr'];
    $q_type=$row1['q_type'];
    $question=$row1['question'];
    $option1=$row1['option1'];
    $option2=$row1['option2'];


    echo "<P><strong>$q_nr $question</strong><BR>";

    if ($q_type != 'mr') {

        if($option1!="") {
            echo "<input type='radio' name='question[$q_nr]' value='$option1'>$option1<BR>";
        } else {
            echo '';
        }
        if($option2!="") {
            echo "<input type='radio' name='question[$q_nr]' value='$option2'>$option2<BR>";
        } else {
            echo '';
        }
    } else {
        if($option1!="") {
            echo "<input type='checkbox' name='question[$q_nr]' value='$option1'>$option1<BR>";
        } else {
            echo '';
        } 
        if($option2!="") {
            echo "<input type='checkbox' name='question[$q_nr]' value='$option2'>$option2<BR>";
        } else {
            echo '';
        } 
    }

    echo "<BR>";
    echo "<BR>";
    echo "</p>";
}
echo "<input type='submit' value='Send Form'>";
echo "</form>";

answer.php

<?php
//Key is $q_nr and $answer is selected $option
foreach($_POST['question'] as $key => $answer) {
    echo $key;
    echo $answer;
}
?>

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Вы можете использовать это как имя:

name="question[$q_nr][]"

Это обеспечит возврат массива, содержащего все значения выбранных флажков.

1 голос
/ 22 сентября 2011

Вы должны иметь различные значения name в флажках.

Например name='question1[$q_nr]' и name='question2[$q_nr]'. То же имя работает только с элементами группировки, для которых установлены радиокнопки.

Или передавая их как массивы:

name='question[$q_nr][1]' и name='question[$q_nr][2]'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...