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

Форум PHP

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

 

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

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

тема: два выпадающих списка
 
 автор: Trischa   (15.06.2005 в 17:38)   письмо автору
 
 

Есть два выпадающих списка, значения в которые передаются из базы MySQL. Надо чтобы при выборе конкретного значения из первого списка, формировался второй список, т.е. выбирались те поля для которых параметр из первого списка равен выбранному значению.. Это все на одной странице.

   
 
 автор: cheops   (15.06.2005 в 20:53)   письмо автору
 
   для: Trischa   (15.06.2005 в 17:38)
 

Это нужно реализовать при помощи JavaScripnt (если, конечно, нельзя перегружать страницу при выборе из первого списка) - обычно выводят первый список, всевозможные комбинации второго списка. При этом элементы второго списка скрывают и отображают по событию выбора из первого списка. Как это реализовать лучше спросить в разделе, специально, посвящённом JS http://www.softtime.ru/forum/index.php?id_forum=4

   
 
 автор: Trischa   (15.06.2005 в 21:05)   письмо автору
 
   для: cheops   (15.06.2005 в 20:53)
 

Я скачала скрипты с форума по JavaScript. Работает только первый <select>, а второй присутствует в коде страницы, но на самой странице он не отображается. В коде выведена вся база данных по каждому значению предыдущего <select>.Кажется не работает функция echo "if(this.form.id_theme.options[".$list['id_theme']."].selected){";

   
 
 автор: Саня   (15.06.2005 в 23:12)
 
   для: Trischa   (15.06.2005 в 17:38)
 

Такая фишка есть на сайте [url]www.litra.ru[/url]

   
 
 автор: Trischa   (16.06.2005 в 16:16)   письмо автору
 
   для: Саня   (15.06.2005 в 23:12)
 

Да, только там весь код этого фрагмента находится в файле *.js. И там скорее всего массивы JavaScript, а у меня БД MySql.
Посмотрите пожалйста код:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> 
<!-- 
nomoactive="-1"; 
function tkchange() 
{ document.getElementById("selecttkfr").src="selecttk.php?rowcolor=<?=$rowcolor1?>&tknum="+document.getElementById("newpresencegr_tknum").value; 

function nomochange() 
{ document.getElementById("newpresencegr_placenomo").src="selecttk.php?rowcolor=<?=$rowcolor1?>&tknum="+document.getElementById("newpresencegr_tknum").value; 

function nomochange() 

    a=document.getElementById("newpresencegr_placenomo").options[document.getElementById("newpresencegr_placenomo").selectedIndex].value; 
    if (nomoactive!="-1") document.getElementById("newpresencegr_placedimo_"+nomoactive).style.display="none"; 
    if (a!="-1") document.getElementById("newpresencegr_placedimo_"+a).style.display="inline"; 
    nomoactive=a; 

//--> 
</SCRIPT> 

<table> 
<TR> 
    <TD valign=top class=ff_name ><NOBR>Alena</NOBR></TD> 
    <TD class=ff_name >
    <SELECT name=newpresencegr_placenomo class=ff_select id=newpresencegr_placenomo onchange="nomochange()"> 
    <OPTION value="-1">no selected 
<SCRIPT LANGUAGE='php'>   
  
     
if (!$link)
     {
       echo 
'Ошибка: не удалось связаться с базой данных; ';
       exit; 
      }
     print
"Connect succesfully <br>";
     
    
// Формируем тело скрипта JavaScript средствами PHP 
    
     
    
$SQL="SELECT * FROM proizvoditel ORDER BY name_proizvoditel;"
    
$rs_nomo=mysql_query($SQL); 
 if(!
$rs_nomo
      { 
        echo 
"Ошибка при выполенении выборки из таблицы proizvoditel"
        exit(); 
      } 
    while (
$rs_nomo && $row_nomo=mysql_fetch_assoc($rs_nomo)) 
    { 
    print 
"<OPTION value=".$row_nomo["proizvoditel_id"].">".$row_nomo["name_proizvoditel"]; 
    } 
</SCRIPT>
    </SELECT>
<SCRIPT LANGUAGE='php'>

     
if (!$link)
     {
       echo 
'Ошибка: не удалось связаться с базой данных; ';
       exit; 
      }
     print
"Connect succesfully <br>";
    
    
// Формируем тело скрипта JavaScript средствами PHP 
      
     
   
    
$SQL="SELECT * FROM models ORDER BY proizvoditel_id;"
    
$rs_dimo=mysql_query($SQL); 
     
$prevnomo=""
   if(!
$rs_dimo
      { 
        echo 
"Ошибка при выполнении выборки из таблицы model"
        exit(); 
      } 
   
    while (
$rs_dimo && $row_dimo=mysql_fetch_assoc($rs_dimo)) 
    { 
    
$nownomo=$row_dimo["proizvoditel_id"]; 
        if (!
$nownomo!=!$prevnomo
        { 
            if (
$prevnomo!="") print "</SELECT>"
            print 
"<SELECT name=newpresencegr_placedimo_".$nownomo." class=ff_select id=newpresencegr_placedimo_".$nownomo." style=\"display: none;\">"
            print 
"<OPTION value=\"-1\">&#197;&#240;&#233;&#235;&#221;&#238;&#244;&#229;"
            
$prevnomo=$nownomo
        } 
        print 
"<OPTION value=".$row_dimo["proizvoditel_id"].">".$row_dimo["name_model"]; 
    } 
    print 
"</SELECT>"


</SCRIPT>

   
 
 автор: Whitish Smoke   (16.06.2005 в 23:30)   письмо автору
 
   для: Trischa   (15.06.2005 в 17:38)
 

Trischa, у вас 2 варианта.

Первый. Тупой. Сделали 1-ый SELECT, вывели в первый список. Когда оттуда выбрали что-то, нажали кнопку, сделали 2-ой SELECT по результатам выбора пользователя, вывели во второй список (то есть это он по смыслу второй, а на странице может быть и единственным).

Второй. По умному. Делаете оба SELECTа. Первый -- как вам надо, второй содержит всё что туда только может попасть. То есть все записи независимо от значения параметра из первого списка. Дальше JavaScript. Иначе -- только первый вариант.

   
 
 автор: Trischa   (17.06.2005 в 07:28)   письмо автору
 
   для: Whitish Smoke   (16.06.2005 в 23:30)
 

Первый вариант отпадает изначально, т.к. страница не должна перезагружаться.
Второй вариант - код второго варианта приведен выше, но только одна проблема.
Что он не отображает второго<select> на странице, хотя в исходном коде(на этой странице) выводит всю БД по нужному запросу.
Проверьте пожалуйста код, может что-то не так как я думаю?

   
 
 автор: oppo   (06.10.2005 в 21:05)   письмо автору
 
   для: Trischa   (17.06.2005 в 07:28)
 

у меня похожая проблема 2 день ищу в инете.
таблица :
id|code|..| город | район|
1 |сумы| |глухов |
2 |киев | |бровары|
3 |сумы| |шостка|

надо чтоб выбирались соответствующие районы через select для город .
Например для город суммы отбирались глухов шостка если в mysql базе они прописаны для сумы.
Если использовать приведенныый выше скрипт то выбирается
сумы =>глухов шостка бровары - что неправильно
а при выборе киев - вообще ничего не происходит.
Закоментировал строку if из кода приведенного выше....

//if (!$nownomo!=!$prevnomo) 
//{ 
if ($prevnomo!="") 
print "</SELECT>"; 
 
print "<SELECT name=newpresencegr_placedimo_".$nownomo." class=ff_select id=newpresencegr_placedimo_".$nownomo." style=\"display: none;\">"; 
print "<OPTION value=\"-1\">выбор"; 
$prevnomo=$nownomo; 
//}

....Заработало , для сумы-> глухов
для киев выбирается -> бровары

но выбирается только первое значение для города сумы ->глухов и нижняя позиция тоже сумы ->глухов

   
 
 автор: oppo   (07.10.2005 в 00:40)   письмо автору
 
   для: oppo   (06.10.2005 в 21:05)
 

вот тут это сделано http://etalon.aval.ua/online/ а тут JS но без php ht[url]tp://htmlcoder.visions.ru/JavaScript/?17[/url] ....

   
Rambler's Top100
вверх

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