|
|
|
| у меня есть спиок с радиобатонами, скжите пожалуйста, как записать в таблицу значеие 1 если радиобатон выбран, а остальным присвоить 2 | |
|
|
|
|
|
|
|
для: kristina
(18.05.2008 в 20:40)
| | Ну смотря какие "радиобатоны". Вообще же так:
<form action="" method="post">
<strong>Group of buttons</strong>
<div style="border: 1px solid Red; width: 240px;">
<input type="radio" name="gbt" value="1">Button 1
<input type="radio" name="gbt" value="2">Button 2
<input type="radio" name="gbt" value="3">Button 3
</div>
<br>
<strong>Single buttons</strong>
<div style="border: 1px solid Red; width: 240px;">
<input type="radio" name="bt1" value="4">Button 4
<input type="radio" name="bt2" value="5">Button 5
<input type="radio" name="bt3" value="6">Button 6
</div>
<br>
<strong>Single checkbox</strong>
<div style="border: 1px solid Red; width: 240px;">
<input type="checkbox" name="ch1">Checkbox 1
<input type="checkbox" name="ch2">Checkbox 2
<input type="checkbox" name="ch3">Checkbox 3
</div>
<br>
<input type="reset" value="Reset">
<input type="submit" value="Sender">
</form>
<?php
//вывод полученного массива из формы
print "<pre>";
print_r($_POST);
print "</pre>";
//вывод значения группы, если получено
print isset($_POST['gbt']) ? "Значение полученное от группы равно ".$_POST['gbt']."<br><br>" :
"Значение группы не установлено."."<br><br>";
//определение полученных чекбоксов
$b1 = isset($_POST['ch1']) ? 1 : 2; //если выбран чекбокс 1, то 1, иначе 2
$b2 = isset($_POST['ch2']) ? 1 : 2; //если выбран чекбокс 2, то 1, иначе 2
$b3 = isset($_POST['ch3']) ? 1 : 2; //если выбран чекбокс 3, то 1, иначе 2
//вывод значений переменных
print "Значение переменной 1 равно ".$b1."<br>
Значение переменной 2 равно ".$b2."<br>
Значение переменной 3 равно ".$b3."<br><br>";
//Определяем какие чекбоксы получены,
//используя имя кнопки для определения.
//Определим массив со значениями по умолчанию
$a = array('ch1' => 'Кнопка ch1 не выбрана',
'ch2' => 'Кнопка ch2 не выбрана',
'ch3' => 'Кнопка ch3 не выбрана');
//проходим цикл
foreach ($_POST as $key => $val) {
//если кнока выбрана, то ищем ассоциацию в массиве
//и заменяем значение этого ключа
if ($key) $a[$key] = 'Кнопка '.$key.' выбрана';
}
print $a['ch1']."<br>".$a['ch2']."<br>".$a['ch3'];
|
Здесь, в форме, находятся два типа радиокнопок - первый тип, это группа, в которой можно выбрать только одну из кнопок, второй, это радиокнопки с независимой фиксацией. Получив форму, вы можете заметить, что у группы радиокнопок вы можете узнать полученное значение, но никакая кнопка группы была выбрана (косвенно конечно можно, если значения кнопок группы не изменяются, фиксированы). В общем для вашей задачи это вроде не подходит. У второго типа кнопок вы можете узнать и что за кнопку выбрали, и ее значение, но... Радиокнопку после выбора уже нельзя разотметить, не используя копку Reset формы, что не очень удобно (для вашего случая, у вас же много кнопок, а это прокрутка...). Третий тип кнопок, это чекбоксы. Для произвольного выбора, это как раз самый подходящий тип кнопок. Заметьте, что у них отсутствует атрибут value, так как вам (по задаче) он вроде бы и не нужен. После получения формы, print_r() вам покажет, например, если выбраны будут кнопки Checkbox 1 и Checkbox 3:
Array
(
[ch1] => on
[ch3] => on
)
|
Т.е. мы получим только признак того, что эти чекбоксы отмечены пользователем, а Checkbox 2 нет. В цикле foreach (), в примере, можно узнать какие из чекбоксов были выбраны. Определив тип кнопок нужных вам, зная для чего производится запись (как соотнести имена полей таблицы и кнопки), несложно будет произвести ее. Но сначала, обязательно, нужно уяснить работу различных типов кнопок, и выбрать нужные (более удобные для решения задачи). | |
|
|
|