Несколько элементов группы RadioButtons - PullRequest
0 голосов
/ 26 января 2012

Существует форма со списком элементов, создаваемых динамически в PHP, каждый из которых имеет свой идентификатор (я имею в виду идентификатор базы данных, а не элемент).
У каждого предмета есть две радиокнопки (хорошо, плохо).
Есть ли способ получить в PHP массив всех элементов, которые являются плохими, и все элементы, которые являются хорошими, как если бы я использовал флажки с именами good [] и bad [] и value = "id" для каждого элемента.

Есть ли способ сделать это с помощью радиокнопок?

<form action="some.php" method="post">
    item 1: <br/>
    <input type="radio"/>Leave<br/>
    <input type="radio"/>Delete<br/>
    item 2: <br/>
    <input type="radio"/>Leave<br/>
    <input type="radio"/>Delete<br/>
</form>

Ответы [ 2 ]

1 голос
/ 26 января 2012

Нет, вы не можете сделать это так, как с флажками.

Вместо этого вам нужно принять все радиогруппы name = "" и пройти через них, создав собственный массив в PHP после принятия формы.

<form>
<input type="radio" name="question1" value="good" /> Good<br />
<input type="radio" name="question1" value="bad" /> bad
<input type="radio" name="question2" value="good" /> Good<br />
<input type="radio" name="question2" value="bad" /> bad
</form>

<?php
$questions = array('question1', 'question2');
foreach($questions as $q) {
    if(isset($_POST[$q])) {
        switch($_POST[$q]) {
            case 'good':
                $good += 1;
                break;
            case 'bad':
                $bad += 1;
                break;
            default:
                // invalid value
        }
    }
}
0 голосов
/ 26 января 2012

Вы можете сделать форму, как показано ниже:

<form action="some.php" method="post">
    <?php foreach ($ids as $i => $id) : ?>
    item <?php echo $i+1 ?>: <br/>
    <input type="radio" name="item[<?php echo $id ?>]" value="good"/>Leave<br/>
    <input type="radio" name="item[<?php echo $id ?>]" value="bad"/>Delete<br/>
    <?php endforeach; ?>
</form>

Тогда в some.php, $_POST['item'] даст вам массив, как показано ниже:

array(
    'item_id1' => 'good',
    'item_id2' => 'bad',
    .....
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...