|
|
|
| Вот пример кода....
по идеи он должен делать следущее:
при выборе списка 1 -> формируется список 2
а при выборе списка 2 -> формируется список 3 (вот здесь и есть ошибка)
Список 3 отображается взависимости от списка 2 НО ... если 2 список переключааешь в третьем списке инфа не меняется...
<script language='JavaScript1.1' type='text/javascript'>
<!--
function click_first()
{
<?php
// Формируем тело скрипта JavaScript средствами 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 tmodel WHERE id_marka=".$list['id_marka'];
$sbl = mysql_query($query);
if(!$sbl)
{
echo "Ошибка при выполенении выборки из таблицы MODEL";
exit();
}
//
if(mysql_num_rows($sbl)>0)
{
$tmpnum = 0;
$tc=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[".($tc++)."].selected){\n";
$query = "SELECT id_c, id_model, complect FROM complect WHERE id_model=".$sublist['id_model'];
$tsbl = mysql_query($query);
if(!$tsbl)
{
echo "Ошибка при выполенении выборки из таблицы complect";
exit();
}
if(mysql_num_rows($tsbl)>0)
{
$ttmpnum = 0;
echo "this.form.complect.length = 1;\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>
|
А вот что в результирующей HTML страничке
<script language='JavaScript1.1' type='text/javascript'>
<!--
function click_first()
{
if(this.form.marka.options[1].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("ALLEX","1");
if(this.form.model.options[0].selected){
this.form.complect.length = 1;
this.form.complect.options[0] = new Option("ZX-43q","1");
this.form.complect.options[1] = new Option("Q-43q","2");
this.form.complect.options[2] = new Option("234-TER","6");
}this.form.model.options[1] = new Option("MARK 2","2");
if(this.form.model.options[1].selected){
this.form.complect.length = 1;
this.form.complect.options[0] = new Option("ER-RR","3");
this.form.complect.options[1] = new Option("ER-R2","4");
this.form.complect.options[2] = new Option("ER-R33","5");
}this.form.model.options[2] = new Option("zxvxcvxz","10");
if(this.form.model.options[2].selected){
}}if(this.form.marka.options[2].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("WINGROUD","3");
if(this.form.model.options[0].selected){
this.form.complect.length = 1;
this.form.complect.options[0] = new Option("YT-R-56","7");
}}if(this.form.marka.options[3].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("DELICA","4");
if(this.form.model.options[0].selected){
this.form.complect.length = 1;
this.form.complect.options[0] = new Option("GT-R","8");
}}if(this.form.marka.options[4].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("CIVIC","5");
if(this.form.model.options[0].selected){
}}if(this.form.marka.options[5].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("BONGO","6");
if(this.form.model.options[0].selected){
}}if(this.form.marka.options[6].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("FORESTER","7");
if(this.form.model.options[0].selected){
}this.form.model.options[1] = new Option("IMPREZA","8");
if(this.form.model.options[1].selected){
}}if(this.form.marka.options[7].selected){
}if(this.form.marka.options[8].selected){
}if(this.form.marka.options[9].selected){
this.form.model.length = 0;
this.form.model.options[0] = new Option("Prio","9");
if(this.form.model.options[0].selected){
}}if(this.form.marka.options[10].selected){
} }
//-->
</script>
|
Уже не могу ВРУБИТЬСЯ по чему при смене списка 2 ->3 не меняется.... | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(11.01.2008 в 09:40)
| | Вы лучше в прикрепление приложите рузультирующий HTML код, где будут отображены ваши списки, и ваш JS код. Никто ведь не будет "гонять" ваш РНР скрипт для их создания. | |
|
|
|
|
 11.5 Кб |
|
|
для: sim5
(11.01.2008 в 11:14)
| | Вот пожалуста :))) | |
|
|
|
|
|
|
|
для: dmtrfoxerr
(11.01.2008 в 11:50)
| | А почему не через AJAX??? | |
|
|
|
|
|
|
|
для: Lstasss
(11.01.2008 в 16:03)
| | Я в JS то новичок ...а в AJAX вообще боюсь этого слова ))
Если все подробно ... на пальцах ....то может и получится что нить | |
|
|
|