Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Хитрый Лис
3 / 3 / 2
Регистрация: 17.04.2014
Сообщений: 37

2 списка select: выбранные пункты отправляются через $_POST, 2-ой не работает

01.08.2014, 03:26. Показов 2209. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот у меня есть 2 списка (<select>).
От пунктов первого списка меняется блок со вторым списком.
Затем я передаю значения обоих списков с помощью $_POST.
Но удивительно то, что у первого списка передаётся выбранный пункт, а вот у второго - только самый первый, независимо от того, что было выбрано на самом деле.

Код файла с формой (как пример):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<form action="animals2.php" method="post" name="clan_rang" enctype="multipart/form-data">
Кто вам больше нравится?<br> 
<select name="pets" onchange="if (self.OBJ) OBJ.style.display = 'none';
                  if (this.value) OBJ = document.getElementById (this.value),
                  OBJ.style.display = 'block'; else OBJ = null">
 
<option name="no" selected>Никто</option>
<option name="cat" value="Кошки">Кошки</option>
<option name="dog" value="Собаки">Собаки</option>
</select>
 
Какая порода ваша любимая?<br>
<div id="Кошки" style="display: none">
<select name="breed">
<option name="1">Котёнок</option>
<option name="2">Оруженосец</option>
<option name="3">Воитель</option>
<option name="4">Старейшина</option>
</select>
</div>
<div id="Собаки" style="display: none">
<select name="breed">
<option name="1">Котёнок</option>
<option name="2">Оруженосец</option>
<option name="3">Воитель</option>
<option name="4">Старейшина</option>
</select>
</div>
<input type="submit" value="Ок"/>
</form>
И код файла, на который это всё передаётся:
PHP
1
2
3
4
5
6
7
8
<?php
header("Content-Type: text/html; charset=utf-8");
 
$pets=$_POST['pets'];
$breed = $_POST['breed'];
 
echo "Любимые домашние животные: ".$pets."<br>Любимая порода: ".$breed; 
?>
Подскажите пожалуйста, в чём же может быть ошибка?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2014, 03:26
Ответы с готовыми решениями:

Есть ли возможность в Access 2007 убирать из списка подстановок уже выбранные пункты?
Есть ли возможность в Access 2007 убирать из списка подстановок уже выбранные пункты? То есть настроил я к примеру в новой таблице список...

Данные не отправляются в $_POST
Помогите, пожалуйста. Данные перестали отправляться в массив $_POST. Что делать?

Не отправляются данные из <select>
Доброго времени суток! Проблема такая: при отправке формы значение select не отправляется вообще, а radio всегда отправляет только первое...

13
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
01.08.2014, 05:06
Цитата Сообщение от Хитрый Лис Посмотреть сообщение
<select name="breed">
Два одинаковых названия селектов, нужны разные
0
 Аватар для Хитрый Лис
3 / 3 / 2
Регистрация: 17.04.2014
Сообщений: 37
01.08.2014, 12:34  [ТС]
MVS76, то есть, вот так?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Какая порода ваша любимая?<br>
<div id="Кошки" style="display: none">
<select name="cat_breed">
<option name="cat1">Котёнок</option>
<option name="cat2">Оруженосец</option>
<option name="cat3">Воитель</option>
<option name="cat4">Старейшина</option>
</select>
</div>
<div id="Собаки" style="display: none">
<select name="dog_breed">
<option name="dog1">Котёнок</option>
<option name="dog2">Оруженосец</option>
<option name="dog3">Воитель</option>
<option name="dog4">Старейшина</option>
</select>
</div>
<input type="submit" value="Ок"/>
</form>
Добавлено через 17 минут
Но как тогда быть с этим?

PHP
1
$breed = $_POST['breed'];
0
4 / 4 / 0
Регистрация: 18.01.2011
Сообщений: 50
01.08.2014, 13:25
Работай через массив
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select name="breed[]">
<option name="cat1">Котёнок</option>
<option name="cat2">Оруженосец</option>
<option name="cat3">Воитель</option>
<option name="cat4">Старейшина</option>
</select>
 
 
<select name="breed[]">
<option name="cat1">Котёнок</option>
<option name="cat2">Оруженосец</option>
<option name="cat3">Воитель</option>
<option name="cat4">Старейшина</option>
</select>
PHP
1
print_r($_POST['breed']);
1
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
01.08.2014, 13:28
Цитата Сообщение от Хитрый Лис Посмотреть сообщение
MVS76, то есть, вот так?
Да, так
0
4 / 4 / 0
Регистрация: 18.01.2011
Сообщений: 50
01.08.2014, 13:29
Не так MVS76,
0
 Аватар для Хитрый Лис
3 / 3 / 2
Регистрация: 17.04.2014
Сообщений: 37
01.08.2014, 13:39  [ТС]
Вот, что получается.

Кого бы я не выбрал в первом селекте (и во втором, который связан с пунктом "Кошки"), передаётся всё равно только пункт того селекта, что зависит от пункта "Собаки".

То есть:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="Кошки" style="display: none">
<select name="cat_breed">
<option name="cat1" value="Мейн Кун">Мейн Кун</option>
<option name="cat2" value="Тэбби">Тэбби</option>
<option name="cat3" value="Ангорра">Ангорра</option>
<option name="cat4" value="Маскарадная">Маскарадная</option>
</select>
</div>
<div id="Собаки" style="display: none">
<select name="dog_breed">
<option name="dog1" value="Терьер">Терьер</option>
<option name="dog2" value="Овчарка">Овчарка</option>
<option name="dog3" value="Дог">Дог</option>
<option name="dog4" value="Лайка">Лайка</option>
</select>
</div>
Я выбираю "Кошки", в породах, например, Ангорру. И выводит так: "Ваши любимые домашние животные: Кошки. Ваша любимая порода: Дог.". Если я до этого выберу собак и породу Овчарка, а затем уже кошек, то выйдет: "Ваши любимые домашние животные: Кошки. Ваша любимая порода: Овчарка.". То есть, "учитывается" только селект, зависящий от собак.

И почему так?
0
4 / 4 / 0
Регистрация: 18.01.2011
Сообщений: 50
01.08.2014, 13:40
Я тебе написал решение, в чем еще вопрос?
0
 Аватар для Хитрый Лис
3 / 3 / 2
Регистрация: 17.04.2014
Сообщений: 37
01.08.2014, 14:28  [ТС]
Kavkaz06, извините, просто не сразу заметил.

Сделал, как Вы сказали:
PHP
1
2
$pets=$_POST['pets'];
echo "Любимые домашние животные: ".$pets."<br>Любимая порода: ".print_r($_POST['breed']);
Выводит:
Array ( [0] => Маскарадная [1] => Терьер ) Любимые домашние животные: Кошки
Любимая порода: 1
Я новичок в PHP, и пока знаю только, как передать значение в массиве на другой файл, назначить его переменной, а потом занести куда-то.
Почитал мануал про print_r - не понял.
Как вывести само значение, а не это?

Извините за невежество, если что.
0
4 / 4 / 0
Регистрация: 18.01.2011
Сообщений: 50
01.08.2014, 14:44
PHP
1
echo "Любимые домашние животные: ".$_POST['breed'][0]."<br>Любимая порода: ".$_POST['breed'][1];
1
 Аватар для Хитрый Лис
3 / 3 / 2
Регистрация: 17.04.2014
Сообщений: 37
01.08.2014, 15:18  [ТС]
Kavkaz06, я сделал так:
PHP
1
echo "Любимые домашние животные: ".$pets."<br>Любимая порода: ".$_POST['breed'][1];
Выводило постоянно только породы собак.
А если так:
PHP
1
echo "Любимые домашние животные: ".$pets."<br>Любимая порода: ".$_POST['breed'][0];
Выводились только породы кошек.

А как сделать, чтобы при выборе в первом селекте кошек выводились породы кошек (0), а при выборе собак - породы собак (1)?
0
4 / 4 / 0
Регистрация: 18.01.2011
Сообщений: 50
01.08.2014, 15:51
Хитрый Лис, Вы объясните что Вам нужно? Вы хотите чтобы второй выпадающий список зависел от выбора первого?
0
 Аватар для Хитрый Лис
3 / 3 / 2
Регистрация: 17.04.2014
Сообщений: 37
01.08.2014, 20:19  [ТС]
Kavkaz06, да, именно так.
Выбирается пункт из первого списка, и тогда показывается второй список с пунктами, зависящими от первого выбора. Затем выбранные пункты из первого и второго селекта передаются в другой файл методом post.
0
4 / 4 / 0
Регистрация: 18.01.2011
Сообщений: 50
01.08.2014, 22:25
Ну тогда Вам нужно обратиться к jquery и AJAX
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2014, 22:25
Помогаю со студенческими работами здесь

Как получить выбранные опции у select
Приветствую всех! Подскажите, пожалуйста, как получить выбранные опции у элемента Select? Например есть такой код на странице: ...

$_POST не видит имя select
Привет! Почему $_POST не видит имя элемента select &lt;?php echo $_POST;//ничего не выводит if($_POST=='a1'){//...

$_POST не получает значение select
Доброго времени суток! Проблема такая: при отправке формы значение select не отправляется вообще, а radio всегда отправляет только первое...

Как записать выбранные SELECT'ом данные в файл
возникла следующая необходимость: нужно данные из оракловских таблиц записать в файл в определенном виде. коннект открыл, мега-запрос...

select multiple не передает данные в $_POST
Здравствуйте! Второй день ломаю голову над скриптом, обгуглил все что можно но решить проблему так и не удается. Проблема в том что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru