Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с JS(тройной выпадающий)
 
 автор: dmtrfoxerr   (11.01.2008 в 09:40)   письмо автору
 
 

Вот пример кода....
по идеи он должен делать следущее:
при выборе списка 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 не меняется....

   
 
 автор: sim5   (11.01.2008 в 11:14)   письмо автору
 
   для: dmtrfoxerr   (11.01.2008 в 09:40)
 

Вы лучше в прикрепление приложите рузультирующий HTML код, где будут отображены ваши списки, и ваш JS код. Никто ведь не будет "гонять" ваш РНР скрипт для их создания.

   
 
 автор: dmtrfoxerr   (11.01.2008 в 11:50)   письмо автору
11.5 Кб
 
   для: sim5   (11.01.2008 в 11:14)
 

Вот пожалуста :)))

   
 
 автор: Lstasss   (11.01.2008 в 16:03)   письмо автору
 
   для: dmtrfoxerr   (11.01.2008 в 11:50)
 

А почему не через AJAX???

   
 
 автор: dmtrfoxerr   (11.01.2008 в 16:26)   письмо автору
 
   для: Lstasss   (11.01.2008 в 16:03)
 

Я в JS то новичок ...а в AJAX вообще боюсь этого слова ))
Если все подробно ... на пальцах ....то может и получится что нить

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования