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

Форум PHP

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

 

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

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

тема: ТРОЙНОЙ!!! (И БОЛЕЕ) выпадающий список
 
 автор: dmtrfoxerr   (07.01.2008 в 19:50)   письмо автору
 
 

Всех с Рождеством!!!
Пытаюсь сделать 3-ной выпадающий список ... но как -то не сильно получается ...
1 список
2 список
3 список
и тд
при выборе 1 списка формируется 2 список и отображается в соответствии с 1м...
при выборе во 2 списке ... выбираются позиции 3его списка...


если кто уже делал подскажите пожалуста....

   
 
 автор: dmtrfoxerr   (07.01.2008 в 20:06)   письмо автору
 
   для: 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   (08.01.2008 в 02:02)   письмо автору
 
   для: dmtrfoxerr   (07.01.2008 в 20:06)
 

Ну неужели никто не сталкивался с этим???

   
 
 автор: Norek   (08.01.2008 в 02:09)   письмо автору
 
   для: dmtrfoxerr   (08.01.2008 в 02:02)
 

К сожалению я не силён в php, но я так понял что вам нужно что-то наподобии выпадающего меню. Его лучше делать с помощью JS!
Если я вас правильно понял - пройдите по ссылке http://www.abc-it.lv/index.php/id/742

   
 
 автор: dmtrfoxerr   (08.01.2008 в 02:22)   письмо автору
 
   для: Norek   (08.01.2008 в 02:09)
 

>К сожалению я не силён в php, но я так понял что вам нужно что-то наподобии выпадающего меню. Его лучше делать с помощью JS!
>Если я вас правильно понял - пройдите по ссылке http://www.abc-it.lv/index.php/id/742
ссылка не работает.... )))
а список я и делаю с помощью JS ...

   
 
 автор: SHAman   (08.01.2008 в 02:12)   письмо автору
 
   для: dmtrfoxerr   (08.01.2008 в 02:02)
 

Вы говорите о списках, а выдаете огромный кусок пхп-кода. Что вам нужно? Как сделать вложенные списки с помощью html+CSS? Или как организовать базу, чтобы хранить вложенные списки? Может, как рекурсивно строить деревья списков? Может, вам нужна библиотечка JS для деревьев?

   
 
 автор: dmtrfoxerr   (08.01.2008 в 02:20)   письмо автору
 
   для: SHAman   (08.01.2008 в 02:12)
 

>Вы говорите о списках, а выдаете огромный кусок пхп-кода. Что вам нужно? Как сделать вложенные списки с помощью html+CSS? Или как организовать базу, чтобы хранить вложенные списки? Может, как рекурсивно строить деревья списков? Может, вам нужна библиотечка JS для деревьев?
Это функция JS ..... но для двойного списка (она работает ) пытался подправить ... на третий ...
---- только учусь ))0
я думаю что в ней ошибка ....

   
 
 автор: Norek   (08.01.2008 в 02:24)   письмо автору
 
   для: dmtrfoxerr   (08.01.2008 в 02:20)
 

Это почти 100% php, JS здесь очень мало(Лучше полностью писать на JS)!

   
 
 автор: dmtrfoxerr   (08.01.2008 в 02:29)   письмо автору
 
   для: 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>

   
 
 автор: sim5   (08.01.2008 в 02:34)   письмо автору
 
   для: dmtrfoxerr   (08.01.2008 в 02:29)
 

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

   
 
 автор: dmtrfoxerr   (08.01.2008 в 02:52)   письмо автору
 
   для: sim5   (08.01.2008 в 02:34)
 

>Вы результирующую HTML страничку свою протестируйте, будет видно где ошибка.

Спасибо !! Завтра уж ... или сегодня ... а то через 4 часа на работу вставать )))

   
 
 автор: dmtrfoxerr   (08.01.2008 в 03:11)   письмо автору
 
   для: sim5   (08.01.2008 в 02:34)
 

ВОТ ДУРЕНЬ!!!! ВСЕ РАБОТАЛО !!!!
ЧЕРТОВЫ ПИРАТЫ!!!!!!!!!!!!
просто сделал опечатку в слове name=complect ....
ЛАН всем спокойной ночи ))) и спасибо за внимание )))

   
Rambler's Top100
вверх

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