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

HTML+CSS+JavaScript

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

 

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

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

тема: 2 выпадающих списка...
 
 автор: MNatikk   (12.04.2005 в 22:21)   письмо автору
 
 

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

   
 
 автор: elenaki   (12.04.2005 в 23:20)   письмо автору
 
   для: MNatikk   (12.04.2005 в 22:21)
 

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

но тут ковырялась в одном скрипте и обнаружила вот такой код:


<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>&#205;&#239;&#236;&#252;&#242;/&#196;&#222;&#236;&#239;&#242;</NOBR></TD>
    <TD class=ff_name ><SELECT name=newpresencegr_placenomo class=ff_select id=newpresencegr_placenomo onchange="nomochange()">
    <OPTION value="-1">&#197;&#240;&#233;&#235;&#221;&#238;&#244;&#229;
<?    $SQL="SELECT * FROM placenomo_tbl ORDER BY placenomo_name;";
    
$rs_nomo=mysql_query($SQL);
    while (
$rs_nomo && $row_nomo=mysql_fetch_assoc($rs_nomo))
    {
    print 
"<OPTION value=".$row_nomo["placenomo_id"].">".$row_nomo["placenomo_name"];
    }
?>
    </SELECT>
<?    $SQL="SELECT * FROM placedimo_tbl ORDER BY placenomo_id, placedimo_name;";
    
$rs_dimo=mysql_query($SQL);
    
$prevnomo="";
    while (
$rs_dimo && $row_dimo=mysql_fetch_assoc($rs_dimo))
    {
    
$nownomo=$row_dimo["placenomo_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["placedimo_id"].">".$row_dimo["placedimo_name"];
    }
    print 
"</SELECT>";
?></TD>
</TR>
</table>


пример работы - ниже. извините за обилие вопросительных знаков, но вручную слишком много переносить, а при закачке из файла база на сервере не понимает кодировку. но там точно меняется значение во втором списке аналогично с выбранным в первом.

а вот структура таблиц:


CREATE TABLE 'placedimo_tbl' (
  'placedimo_id' int(11) NOT NULL default '0',
  'placedimo_name' varchar(30) NOT NULL default '',
  'placenomo_id' varchar(30) NOT NULL default '',
  'placedimo_koin' decimal(1,0) NOT NULL default '0',
  PRIMARY KEY  ('placedimo_id')
) TYPE=MyISAM;

CREATE TABLE 'placenomo_tbl' (
  'placenomo_id' int(11) NOT NULL default '0',
  'placenomo_name' varchar(30) NOT NULL default '',
  'placeperi_id' int(11) NOT NULL default '0',
  PRIMARY KEY  ('placenomo_id')
) TYPE=MyISAM;



как только найду свободную минутку, забью туда более понятные значения. тем более, что и самой хочется разобраться. сейчас даже не спрашивайте меня, как это работает. НЕ ЗНАЮ :)

   
 
 автор: MNatikk   (14.04.2005 в 00:17)   письмо автору
 
   для: elenaki   (12.04.2005 в 23:20)
 

Спасибо. Очень выручили...

   
Rambler's Top100
вверх

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