PHP несколько радио-кнопок - PullRequest
0 голосов
/ 01 ноября 2009

как мне обработать все переключатели со страницы?

<input type="radio" name="radio_1" value="some" />
<input type="radio" name="radio_1" value="some other" />

<input type="radio" name="radio_2" value="some" />
<input type="radio" name="radio_2" value="some other" />

эта кнопка будет добавлена ​​динамически, поэтому я не буду знать название переключателей (а также количество кнопок). Есть ли способ получить все значения радио с помощью цикла for или что-то вроде этого? спасибо

Ответы [ 3 ]

2 голосов
/ 01 ноября 2009

Используйте foreach петлю

<?php
foreach ( $_POST as $key => $val )
    echo "$key -> $val\n";
?>

$ key будет именем выбранной опции, а $ val, ну, значением.

1 голос
/ 01 ноября 2009

Поскольку браузер просто изменит все ваши входные данные на данные формы в формате HTTP, вы не сможете определить, какие данные поступают из переключателя по сравнению с текстовым полем или другим вводом.

Если соглашение об именах совпадает с вашим примером, просто зацикливайтесь, пока не найдете значение:

<?
  for ($idx = 1; $idx <= 1000; $idx++) {
    if (isset($_REQUEST["radio_$idx"])) {
      // handle value
    }
  }
?>

РЕДАКТИРОВАТЬ В качестве альтернативы, если ваша форма генерируется динамически, вы можете указать количество созданных ею переключателей в виде скрытого поля в форме.

Если вы можете изменить сгенерированную форму, вы можете написать скрытый ввод, содержащий список всех переключателей, которые вы хотите найти. Когда вы пишете переключатели, просто составьте список всех имен, разделенных точкой с запятой. Когда вы закончите, запишите это в скрытый ввод. Примерно так:

В исходной форме:

<input type="hidden" name="radio_button_list" value="some_value;other_value" />

Тогда в вашем обработчике:

<?
  $list = explode(';', $_REQUEST['radio_button_list']);
  foreach ($list as $name) {
    $value = $_REQUEST[$name];
    // handle name & value
  }
?>
0 голосов
/ 01 ноября 2009
Пример

jheddings говорит сам за себя. Однако вы никогда не получите названия / значения кнопок all - только выбранные из каждой группы. Если вам нужно буквально все значения, вам придется использовать Javascript.

...