Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 16:09   #1
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию [PHP]обработка выбора

есть форма выбора
Код HTML:
<form action="next.php method=post>
<table border=0>
	<tr bgcolor=#cccccc>
	<td width=150>Select</td>
	</tr>
<tr>
	<td>A</td>
	<input type="checkbox" name="vybor" value="a"></td>
</tr>

<tr>
	<td>B</td>
	<input type="checkbox" name="vybor" value="b"></td>
</tr>

<tr>
<td><input type=submit value="Submit"></td>
</tr>
</form>
в next.php должно выводится либо "a" либо "b" либо "a" и "b" в соответствии с тем как раставлены галочки. но у меня получается только либо "a" либо "b" вывести на экран, а если оба варианта выбраны-не получается. пробовал switch и if результат одинаковый, как реализовать-ума не приложу
PHP код:
<?
    
switch ($HTTP_POST_VARS["vybor"])

    {
        case 
"a":
        echo 
"<p>A";
        break;
        case 
"b" :
        echo 
"<p>B";
        break;
        default: echo 
"<p>No";
        
    }                                                        
    

?>
dma вне форума Ответить с цитированием
Старый 28.11.2010, 17:21   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

У вас checkbox-ы имеют одинаковые имена (атрибут name ) - потому в обработчик передаётся одно значение.
В вашем случае - при выборе двух вариантов передаётся последнее выбранное значение.

Вам нужно присвоить элементам формы разные имена(name="vybor_a", name="vybor_b") - ну и соответственно проверить их в обработчике.

Совет: полезный элемент отладки и проверки полученных значений - функция var_dump() - позволяет увидеть все полученные значения.
В вашем случае - вставьте в начале обработчика формы команду var_dump($_POST);
Andkorol вне форума Ответить с цитированием
Старый 28.11.2010, 22:35   #3
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

хорошо, назовем чекбоксы поразному, но вопрос в том как вывести результат при нескольких выбранных результатах остается. хоть намекните в какую сторону смотреть, с If else не выходит
П.С. if ((логическое_выражение) && (логическое_выражение)) - такой конструкции не существует?
dma вне форума Ответить с цитированием
Старый 28.11.2010, 22:37   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

а как же... обязательно есть
гуглите )))
ADSoft вне форума Ответить с цитированием
Старый 28.11.2010, 23:26   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от dma Посмотреть сообщение
но вопрос в том как вывести результат при нескольких выбранных результатах остается. хоть намекните в какую сторону смотреть, с If else не выходит
Пользуйте var_dump() - я же писал выше,тогда и вопросов не будет...

У checkbox-ов есть такая особенность - в обработчик передаются только отмеченные элементы.

Соответственно - в обработчике проверяем:
if(isset(элемент_1) && (элемент_1 == 'a')) - вывод "А"
затем
if(isset(элемент_2) && (элемент_2 == 'b')) - вывод "B"

Чистая логика...
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка интепретатором php Викдон PHP 7 02.09.2010 12:58
Обработка ошибок PHP BloodWizard PHP 1 30.05.2010 14:21
Операторы выбора в С++ icejoker Помощь студентам 0 27.12.2009 17:15
оператор выбора malova Помощь студентам 5 18.12.2009 21:53
помощь по PHP(форма и обработка) Eugene811 PHP 7 11.05.2009 04:17