|
|
|
| Подскажите как сделать вывод из базы при выборе значения из списка?
<select name="select" id="select">
<option>значение 1</option>
<option>значение 2</option>
<option>Значение 3</option>
</select>
При выборе Значения 1 на ту же страницу где и этот список должны выводиться записи со значением 1. | |
|
|
|
|
|
|
|
для: studentPO
(04.06.2010 в 07:19)
| | <select name="sel" id="sel">
<option value=1>значение 1</option>
<option value=2>значение 2</option>
<option value=2>Значение 3</option>
</select>
Не именуйте объекты зарезервированными словами, напоретесь когда либо на нехорошее. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 07:29)
| | Вопрос был другой, но за совет спасибо! | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 07:31)
| | По вопросам конкретной выборки из базы, это вам надо обращаться к учебникам и мануалам, можно таже смотреть темы этого раздела форума.
Выборка из базы осуществляется оператором SELECT.
В общем изучать надо. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 07:40)
| | Про SELECT это понятно.
Вот выбираю данные независимо от того что выбрано в списке
$sql=mysql_query("SELECT `id`,`vid`,`tenderName`,`zakazchik`,`datePubl`,`dateBegin`,`dateEnd` from `tenders` order by `dateEnd` LIMIT $pageNav->start, $pageNav->limit");
Как сделать так, чтобы при выборе значения из списка работал бы запрос
$sql=mysql_query("SELECT `id`,`vid`,`tenderName`,`zakazchik`,`datePubl`,`dateBegin`,`dateEnd` from `tenders` order by `dateEnd` LIMIT $pageNav->start, $pageNav->limit where `vid`=то что выбрано в списке"); ?
При этом вывод должен осуществляться на эту же страницу где и список, | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 07:45)
| | Ну коли вы это знаете, то какие проблемы?
Я для чего в ваш список добавил атрибут value опшенам?
Вот эти атрибуты опшенов и должны быть равны id ваших записей (для условия where).
Или это не понятно? | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 07:48)
| | Это понятно. Не соображу как запустить выполнение запроса сразу после выбора значения из списка.
Если приделать кнопку ВЫПОЛНИТЬ в форме, то без проблем, нажал на кнопку и запустился на выаполнение файл с запросом. А если без кнопки?
Вот нашел пример того, как примерно надо сделать.
http://torgi.samregion.ru/catnav/bidclosed/bidclosed//auction/11/ID/bidactive?trade_type_selector=bidactive&TradeType=bidpending | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 07:53)
| |
<select name="sel" id="sel" onchange="this.form.submit()">
|
И форма будет отправлена без нажатия на кнопку submit. Только добавте опшен в начале списка со значением, например, 0, и текстом Выберите..., иначе у пользователя не будет возможности выбрать первое значение из списка. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 07:56)
| | sim5, спасибо. Но не очень понятно пока. Можно поконкретнее? | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 08:06)
| |
<?
print_r($_POST['sel']);
?>
<form action="" method="post">
<select name="sel" onchange="this.form.submit()">
<option value="0">Выберите...</option>
<option value="1">Значение 1</option>
<option value="2">Значение 2</option>
<option value="3">Значение 3</option>
</select>
</form>
|
Выполните, посмотрите, что будете получать на сервере. А теперь уберите опшен <option value="0">Выберите...</option> из списка, и попробуйте выбрать в нем опшен <option value="1">Значение 1</option>. Получается выбрать? | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 08:11)
| | Не получится конечно, с этим ясно все.
я не то имел в виду.
Вот сделал я список
<?
print_r($_POST['sel']);
?>
<form action="" method="post">
<select name="sel" onchange="document.forma.action=document.forma.vid.value;submit()">
<option value="0">Выберите...</option>
<option value="1">Значение 1</option>
<option value="2">Значение 2</option>
<option value="3">Значение 3</option>
</select>
</form>
|
Что еще нужно прописать чтоб выполнялся запрос? | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 08:23)
| | document.forma.action=document.forma.vid.value;submit()" - выбросить. Писать так, как я писал.
Во-первых, это не будет выполнено, так как не верно написано.
Во-вторых, атрибут action формы содержит не значения опшенов, а адрес запрашиваемой страницы (скрипта).
Вы разве не видете при выполнении этого примера, что на сервере вы и будете получать значение выбранного опшена? Если пользователь выберет опшен <option value="2">Значение 2</option>, то сервер получить переменную $_POST['sel'] равную 2.
Если опешены списка вместо 1,2,3... будут содержать реальные id записей в базе, то вы и получите необходимое - номер записи, которую нужно подставить в условие запроса: intval($_POST['sel']).
Что не понятного? | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 08:32)
| | Теперь все прояснилось.
Спасибо за помощь! | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 08:32)
| | Человеку нужны связанные поля формы, а не отправка формы по выбору. По-моему, так. | |
|
|
|
|
|
|
|
для: neadekvat
(04.06.2010 в 08:52)
| | Даже так? Что-то я не заметил из его повествования. Впрочем, можете у него уточнить. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 08:56)
| | Необходимо было то, о чем говорил sim5 | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 09:00)
| | А возможно ли использование 2 таких списков с onChange="this.form.submit()" в одной форме? | |
|
|
|
|
|
|
|
для: studentPO
(04.06.2010 в 21:23)
| | На здоровье, хоть 20. Но если два списка этих будут работать по принципу ИЛИ, а вот если последовательный выбор, то это называется связанными списками. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 21:34)
| | Допустим у меня 2 списка
<td width="50%" scope="col"><div align="left"><span class="TableTenderHeader">Вид тендера
<select name='vid' class="RegistrField" onChange="this.form.submit()">
<option value="Тип">Выберите вид тендера</option>
<option value="">Все тендеры</option>
<option value="1">Аукцион</option>
<option value="2">Катировки</option>
<option value="3">Конкурс</option>
</select>
</span></div></td>
<td width="50%" scope="col"><div align="left"><span class="TableTenderHeader">Состояние тендеров
<select name='status' class="RegistrField" id="status" onChange="this.form.submit()">
<option value="Состояние">Выберите состояние тендеров</option>
<option value="">Все тендеры</option>
<option value="1">Активные</option>
<option value="0">Завершившиеся</option>
</select>
|
И в зависимости от выбранных значений работают запросы
$sql=mysql_query("SELECT `id`,`vid`,`tenderName`,`zakazchik`,`datePubl`,`dateBegin`,`dateEnd` from `tenders` where `vid` like '$vid' order by `dateEnd`");
|
или
$sql=mysql_query("SELECT `id`,`vid`,`tenderName`,`zakazchik`,`datePubl`,`dateBegin`,`dateEnd` from `tenders` order by `dateEnd`");
|
В данных запросах выбираются значения в зависимости от того что выбрано в первом списке. Т.е. вид тендеров. А еще необходимо приделать такой же список со статусом тендеров - Активные или Завершенные. Это что получается связанные списки или поп ринципу ИЛИ? | |
|
|
|
|
|
|
|
для: StudentPO
(04.06.2010 в 21:45)
| | Да, конечно ИЛИ, но неразумное.
Вы же понимаете, что это будут два отдельных запроса, следовательно пользователь никак не получит, например, Аукционы :: Активные, он может получить лишь одно из этих значений.
В вашем случае либо связанные списки нужны (если конечно подобного много у вас), либо добавить в форму группу радиокнопок, которыми можно будет выбрать состояние тендеров, удалив список 'status'. При этом список 'vid' либо не должен отправлять форму (отправка кнопкой submit), либо отправлять, но по событию onsubmit формы проверять - выбрал ли пользователь статус, если для его выбора используется список. А можно просто назначить списку (группе радиокнопок) статус по умолчанию, и списком 'vid' отправлять форму.
В общем, списком "status" отправлять форму в этом сценарии не логично.
PS Кстати, это из каких таких соображений?:
| |
|
|
|