[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: два чекбокса
Гость_Jet
Проблема для новичка следующая. Есть две формы: каждая с группой чекбоксов и кпопкой. Нужно, чтобы при нажатии на любую из кпопок сохранялись выбранные в чекбоксах галочки. Для одной формы ясно как сделать - привожу код:
<html>
<head>
<title>Checkboxes</title>
<?PHP
$ch1 = $_POST['ch1'];
$ch2 = $_POST['ch2'];

if (isset($_POST['Submit1'])) {

if (isset($_POST['ch1'])) {
$ch1 = $_POST['ch1'];

if ($ch1 == 'net') {
$ch1 = 'checked';
}
}

if (isset($_POST['ch2'])) {
$ch2 = $_POST['ch2'];

if ($ch2 == 'word') {
$ch2 = 'checked';
}
}
}

?>

</head>
<body>

<FORM NAME ="form1" METHOD ="POST" ACTION ="checkBoxes.php">

<Input type = 'Checkbox' Name ='ch1' value ="net"
<?PHP print $ch1; ?>
>Visual Basic .NET
<P>
<Input type = 'Checkbox' Name ='ch2' value="word"
<?PHP print $ch2; ?>
>Microsoft Word
<P>

<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Choose your books">
</FORM>


<?PHP
// part2 - form#2********************************************
$ch1 = $_POST['ch12'];
$ch2 = $_POST['ch22'];

if (isset($_POST['Submit2'])) {

if (isset($_POST['ch12'])) {
$ch1 = $_POST['ch12'];

if ($ch1 == 'net') {
$ch1 = 'checked';
}
}

if (isset($_POST['ch22'])) {
$ch2 = $_POST['ch22'];

if ($ch2 == 'word') {
$ch2 = 'checked';
}
}

}
?>

<FORM NAME ="form2" METHOD ="POST" ACTION ="checkBoxes.php">

<Input type = 'Checkbox' Name ='ch12' value ="net"
<?PHP print $ch1; ?>
>Visual Basic .NET
<P>
<Input type = 'Checkbox' Name ='ch22' value="word"
<?PHP print $ch2; ?>
>Microsoft Word
<P>

<INPUT TYPE = "Submit" Name = "Submit2" VALUE = "Choose your books2">
</FORM>

</body>
</html>

Проблема в том, что через $_POST не отловишь значения в первой форме, когда жмешь кпопку во второй: isset($_POST[чекбоксФормы1]) автоматически становится false.
Как быть??? Помогите, плиз!!!!






Спустя 22 минуты, 9 секунд (17.01.2012 - 16:48) inpost написал(а):
Делай через 1 форму.

Спустя 28 минут, 44 секунды (17.01.2012 - 17:17) Гость_Jet написал(а):
Мне бы надо через две формы сделать, если я пойму как это сделать, то это сильно поможет в моей задаче.

Спустя 5 минут, 39 секунд (17.01.2012 - 17:23) Guest написал(а):
Если бы вместо чекбоксов у меня был селект - то нет проблем, $_POST[] ловишь значение и созраняешь в переменную $_SESSION[].
А с чекбоксами я не могу догнать, как поймать - отмечена галочка или нет, потому что isset для чекбоксов одинаков для случая, если галочка не отмечена, и если просто такого чекбокса не существует.

Спустя 12 минут, 13 секунд (17.01.2012 - 17:35) inpost написал(а):
зачем 2 формы? Можно сделать 2 разных обработчика на одной форме. Достаточно словить name нажатой кнопки.

Спустя 1 час, 3 минуты, 9 секунд (17.01.2012 - 18:38) Гость_Jet написал(а):
Объясню зачем две формы. У меня есть объект, который по сути состоит из одного селекта и четырех чекбоксов. В зависимости от ситуации в пхп-скрипт прописывается от 3 до 10 этих объектов, причем в зависимости от выбора пользователем селекта меняется источник для других селектов.
Внутри каждого объекта прописывается одна форма. Отчет составляется также и по тому, какие галочки поставит пользователь в чекбокс... поймать эти галочки и оказалось проблемой, почему я и здесь.

Спустя 1 час, 15 минут, 54 секунды (17.01.2012 - 19:54) inpost написал(а):
Всё в одну форму. Отправил, там проверил, какой из селектов выбран, вот какой выбран - ту обработку и делаешь обычным условием if-else

Спустя 1 час, 30 минут, 18 секунд (17.01.2012 - 21:24) Globdoce написал(а):
Jet! Тебе правильно ребята говорят по поводу одной формы. Зачем тебе две формы, которые будут одновременно что-то выполнять? Ты ведь когда за компьютером находишься - не управляешь же одновременно двумя мышками и не пишешь же на двух клавиатурах сразу. Человек не сможет при всем своем желании разорваться одновременно на две твои формы!

Пользователю придется выбрать между кнопкой Choose your books 1 или Choose your books 2. Так как все, что у человека есть - это выбор, где он заключается в том, какую кнопку нажать!

<?php

if (isset($_POST['ch1']) and isset($_POST['ch2'])) {
$ch1 = $_POST['ch1'];
$ch2 = $_POST['ch2'];
if ($ch1 == true and $ch2 == true)
$ch1 = "<font color=green>Okay</font>";
$ch2 = "<font color=green>Okay</font>"; }

if (isset($_POST['ch11']) and isset($_POST['ch22'])) {
$ch11 = $_POST['ch11'];
$ch22 = $_POST['ch22'];
if (!$ch11 == false and !$ch22 == false)
$ch11 = "<font color=green>Okay</font>";
$ch22 = "<font color=green>Okay</font>"; }

// Form 1

if (isset($_POST['ch1']))
$ch1 = $_POST['ch1'];
if ($ch1 == true)
$ch1 = "<font color=green>Okay</font>";


if (isset($_POST['ch2']))
$ch2 = $_POST['ch2'];
if ($ch2 == true)
$ch2 = "<font color=green>Okay</font>";


// Form 2

if (isset($_POST['ch11']))
$ch11 = $_POST['ch11'];
if ($ch11 == true)
$ch11 = "<font color=green>Okay</font>";

if (isset($_POST['ch22']))
$ch22 = $_POST['ch22'];
if ($ch22 == true)
$ch22 = "<font color=green>Okay</font>";

?>

<html>
<
head>
<
title>Checkbox</title>
<
head>
<
body>

<
form method="POST" action="<?=$_SERVER['PHP_SELF']?>">

<
p>
<
input type="checkbox" name="ch1">
Visual Basic .NET <?=$ch1?>
</p>

<
p>
<
input type="checkbox" name="ch2">
Microsoft Word <?=$ch2?>
</p>

<
p>
<
input type="submit" name="submit1" value="Choose your books 1 / Delete">
</
p>

</
form>

<
p>----------------------------------------------</p>

<
form method="POST" action="<?=$_SERVER['PHP_SELF']?>">

<
p>
<
input type="checkbox" name="ch11">
Visual Basic .NET <?=$ch11?>
</p>

<
p>
<
input type="checkbox" name="ch22">
Microsoft Word <?=$ch22?>
</p>

<
p>
<
input type="submit" name="submit2" value="Choose your books 2 / Delete">
</
p>

</
form>

</
body>
</
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.