|
|
|
| Всех с Рождеством!!!
Пытаюсь сделать 3-ной выпадающий список ... но как -то не сильно получается ...
1 список
2 список
3 список
и тд
при выборе 1 списка формируется 2 список и отображается в соответствии с 1м...
при выборе во 2 списке ... выбираются позиции 3его списка...
если кто уже делал подскажите пожалуста.... | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(07.01.2008 в 19:50)
| | Я делаю следущим образом:
function click_first()
{
<?php
$query = "SELECT * FROM marka";
$lst = mysql_query($query);
if(!$lst)
{
echo "Ошибка при выполенении выборки из таблицы MARKA";
exit();
}
// формируем список
if(mysql_num_rows($lst)>0)
{
$counter = 1;
while($list = mysql_fetch_array($lst))
{
echo "if(this.form.marka.options[".($counter++)."].selected){\n";
$query = "SELECT * FROM model WHERE id_marka=".$list['id_marka'];
$sbl = mysql_query($query);
if(!$sbl)
{
echo "Ошибка при выполенении выборки из таблицы MODEL";
exit();
}
//
if(mysql_num_rows($sbl)>0)
{
$tmpnum = 0;
echo "this.form.model.length = 0;\n";
while($sublist = mysql_fetch_array($sbl))
{
echo "this.form.model.options[$tmpnum] = new Option(\"".$sublist['model']."\",\"".$sublist['id_model']."\");\n";
$tmpnum++;
// Третий выпадающий список
echo "if(this.form.model.options[".($tmpnum++)."].selected){\n";
$query = "SELECT * FROM complect WHERE id_model=".$sublist['id_model'];
$tsbl = mysql_query($query);
if(!$tsbl)
{
echo "Ошибка при выполенении выборки из таблицы complect";
exit();
}
if(mysql_num_rows($tsbl)>0)
{
$ttmpnum = 1;
echo "this.form.complect.length = 0;\n";
while($tsublist = mysql_fetch_array($tsbl))
{
echo "this.form.complect.options[$ttmpnum] = new Option(\"".$tsublist['complect']."\",\"".$tsublist['id_c']."\");\n";
$ttmpnum++;
}
}
echo "}";
// Конец третьего
}
}
echo "}";
}
}
//
?>
}
|
Инетересно что при удаления кода третьего списка... нормально работает 2й список.. а так отображается только та позиция которая забита в таблице complect | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(07.01.2008 в 20:06)
| | Ну неужели никто не сталкивался с этим??? | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(08.01.2008 в 02:02)
| | К сожалению я не силён в php, но я так понял что вам нужно что-то наподобии выпадающего меню. Его лучше делать с помощью JS!
Если я вас правильно понял - пройдите по ссылке http://www.abc-it.lv/index.php/id/742 | |
|
|
|
|
|
|
|
для: Norek
(08.01.2008 в 02:09)
| | >К сожалению я не силён в php, но я так понял что вам нужно что-то наподобии выпадающего меню. Его лучше делать с помощью JS!
>Если я вас правильно понял - пройдите по ссылке http://www.abc-it.lv/index.php/id/742
ссылка не работает.... )))
а список я и делаю с помощью JS ... | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(08.01.2008 в 02:02)
| | Вы говорите о списках, а выдаете огромный кусок пхп-кода. Что вам нужно? Как сделать вложенные списки с помощью html+CSS? Или как организовать базу, чтобы хранить вложенные списки? Может, как рекурсивно строить деревья списков? Может, вам нужна библиотечка JS для деревьев? | |
|
|
|
|
|
|
|
для: SHAman
(08.01.2008 в 02:12)
| | >Вы говорите о списках, а выдаете огромный кусок пхп-кода. Что вам нужно? Как сделать вложенные списки с помощью html+CSS? Или как организовать базу, чтобы хранить вложенные списки? Может, как рекурсивно строить деревья списков? Может, вам нужна библиотечка JS для деревьев?
Это функция JS ..... но для двойного списка (она работает ) пытался подправить ... на третий ...
---- только учусь ))0
я думаю что в ней ошибка .... | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(08.01.2008 в 02:20)
| | Это почти 100% php, JS здесь очень мало(Лучше полностью писать на JS)! | |
|
|
|
|
|
|
|
для: Norek
(08.01.2008 в 02:24)
| | Я не полностью привел код
<script language='JavaScript1.1' type='text/javascript'>
<!--
function click_first()
{
<?php
$query = "SELECT * FROM marka";
$lst = mysql_query($query);
if(!$lst)
{
echo "Ошибка при выполенении выборки из таблицы MARKA";
exit();
}
// формируем список
if(mysql_num_rows($lst)>0)
{
$counter = 1;
while($list = mysql_fetch_array($lst))
{
echo "if(this.form.marka.options[".($counter++)."].selected){\n";
$query = "SELECT * FROM model WHERE id_marka=".$list['id_marka'];
$sbl = mysql_query($query);
if(!$sbl)
{
echo "Ошибка при выполенении выборки из таблицы MODEL";
exit();
}
//
if(mysql_num_rows($sbl)>0)
{
$tmpnum = 0;
echo "this.form.model.length = 0;\n";
while($sublist = mysql_fetch_array($sbl))
{
echo "this.form.model.options[$tmpnum] = new Option(\"".$sublist['model']."\",\"".$sublist['id_model']."\");\n";
$tmpnum++;
// Третий выпадающий список
echo "if(this.form.model.options[".($tmpnum++)."].selected){\n";
$query = "SELECT * FROM complect WHERE id_model=".$sublist['id_model'];
$tsbl = mysql_query($query);
if(!$tsbl)
{
echo "Ошибка при выполенении выборки из таблицы complect";
exit();
}
if(mysql_num_rows($tsbl)>0)
{
$ttmpnum = 1;
echo "this.form.complect.length = 0;\n";
while($tsublist = mysql_fetch_array($tsbl))
{
echo "this.form.complect.options[$ttmpnum] = new Option(\"".$tsublist['complect']."\",\"".$tsublist['id_c']."\");\n";
$ttmpnum++;
}
}
echo "}";
// Конец третьего
}
}
echo "}";
}
}
//
?>
}
//-->
</script>
|
А потом эти данные отправляю в ...
Вот место где вызываю функцию
// Первый выпадающий список
<?php
echo "Марка:</td><td>";
$query = "SELECT * FROM marka";
$lst = mysql_query($query);
if(!$lst)
{
echo "Ошибка при выполнении выборки из таблицы MARKA";
exit();
}
// Если в таблице есть хоть одна запись - формируем список
if(mysql_num_rows($lst)>0)
{
echo "<select size=1
name=marka onClick=\"javascript:click_first()\">";
echo "<option value=0>-</option>";
while($list = mysql_fetch_array($lst))
{
// Формируем элементы списка
echo "<option value=".$list['id_marka'].">".$list['marka'];
}
}
?>
|
// Второй список
<tr><td>Модель:</td>
<td><select name=model size="1" showempty>
</select></td>
|
| |
|
|
|
|
|
|
|
для: dmtrfoxerr
(08.01.2008 в 02:29)
| | Вы результирующую HTML страничку свою протестируйте, будет видно где ошибка. | |
|
|
|
|
|
|
|
для: sim5
(08.01.2008 в 02:34)
| | >Вы результирующую HTML страничку свою протестируйте, будет видно где ошибка.
Спасибо !! Завтра уж ... или сегодня ... а то через 4 часа на работу вставать ))) | |
|
|
|
|
|
|
|
для: sim5
(08.01.2008 в 02:34)
| | ВОТ ДУРЕНЬ!!!! ВСЕ РАБОТАЛО !!!!
ЧЕРТОВЫ ПИРАТЫ!!!!!!!!!!!!
просто сделал опечатку в слове name=complect ....
ЛАН всем спокойной ночи ))) и спасибо за внимание ))) | |
|
|
|