Autor | Zpráva | ||
---|---|---|---|
Patrik C. Profil * |
#1 · Zasláno: 10. 4. 2010, 15:09:11
Dobrý den, použím chained select (několik selectů na sobě zavislých) vše mě funguje jak má.
Zvolím kraj a z databáze se mě do dalšího selectu zvolí okresy, který zvolný kraj má... Jenže problém nastává v tom, když v select menu v krajích zvolím natvrdo třeba Jihomoravský kraj jako selected, tak se mě již okresy nevypíšou. Prostě nevím kde je chyba, znalost JS u mě není dobrá, takže bych byl rád za nějakou vaši radu. HTML: <select id="kraj" name="kraj" class="levevyhledavani"><option value="">Nerozhoduje</option><option value="1">Jihočeský</option><option value="2" selected="selected">Jihomoravský</option><option value="3">Karlovarský</option><option value="4">Královehradecký</option><option value="5">Liberecký</option><option value="6">Moravskoslezký</option><option value="7">Olomoucký</option><option value="8">Pardubický</option><option value="9">Plzeňský</option><option value="10">Praha</option><option value="11">Středočeský</option><option value="12">Ústecký</option><option value="13">Vysočina</option><option value="14">Zlínský</option></select> <select id="okres" name="okres" class="levevyhledavani"><option value="">Vyberte kraj</option></select> JS: $('#kraj').change(function(e){ var kraj = $('#kraj option:selected').val(); if(kraj>0) { $.get('funkce/ajax2.php?kraj='+kraj, function(data){ $('#okres').show().html(data); }); } }); PHP: if(isset($kraj)) { $result = mysql_query("SELECT DISTINCT id,nazev,typ FROM web_okres WHERE typ='$kraj' ORDER by nazev ASC") or die(mysql_error()); echo '<option value="">Nerozhoduje</option>'; while($text = mysql_fetch_array( $result )) { echo '<option value="'.$text['id'].'">'.$text['nazev'].'</option>'; } } Děkuji předem za Vaše rady |
||
sysel Profil |
#2 · Zasláno: 10. 4. 2010, 19:42:01
Milý Patriku C.
na webu Českého statistického úřadu lze nalézt platné číselníky, já jsem už asi dva roky neaktulisoval takže čísla nemusejí sedět. Číselník zahrnuje oblasti, kraje, okresy, obce s rozšířenou pravomocí a obecní úřady pověřené. Svůj PHP kód proto neuvádím, ale ten si snadno napíšete podle Vašeho způsobu uložení číselníku do MySQL. HTML stránka však pracuje samostatně a nemusí se po každé změně reloadovat. <html lang="cs"> <HEAD> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Vyhledat</title> <script> // výpis číselníku pomocí PHP: var kraje= {'-----':['-----','vyberte kraj'] ,CZ010:['CZ010','Hlavní město Praha'] ,CZ031:['CZ031','Jihočeský'] ,CZ062:['CZ062','Jihomoravský'] ,CZ041:['CZ041','Karlovarský'] ,CZ052:['CZ052','Královéhradecký'] ,CZ051:['CZ051','Liberecký'] ,CZ080:['CZ080','Moravskoslezský'] ,CZ071:['CZ071','Olomoucký'] ,CZ053:['CZ053','Pardubický'] ,CZ032:['CZ032','Plzeňský'] ,CZ020:['CZ020','Středočeský'] ,CZ042:['CZ042','Ústecký'] ,CZ061:['CZ061','Vysočina'] ,CZ072:['CZ072','Zlínský'] }; var okres= {'------':['------','vyberte okres','-----'] ,CZ0201:['CZ0201','Benešov','CZ020'] ,CZ0202:['CZ0202','Beroun','CZ020'] ,CZ0621:['CZ0621','Blansko','CZ062'] ,CZ0622:['CZ0622','Brno-město','CZ062'] ,CZ0623:['CZ0623','Brno-venkov','CZ062'] ,CZ0801:['CZ0801','Bruntál','CZ080'] ,CZ0624:['CZ0624','Břeclav','CZ062'] ,CZ0511:['CZ0511','Česká Lípa','CZ051'] ,CZ0311:['CZ0311','České Budějovice','CZ031'] ,CZ0312:['CZ0312','Český Krumlov','CZ031'] ,CZ0421:['CZ0421','Děčín','CZ042'] ,CZ0321:['CZ0321','Domažlice','CZ032'] ,CZ0802:['CZ0802','Frýdek-Místek','CZ080'] ,CZ0611:['CZ0611','Havlíčkův Brod','CZ061'] ,CZ0625:['CZ0625','Hodonín','CZ062'] ,CZ0521:['CZ0521','Hradec Králové','CZ052'] ,CZ0411:['CZ0411','Cheb','CZ041'] ,CZ0422:['CZ0422','Chomutov','CZ042'] ,CZ0531:['CZ0531','Chrudim','CZ053'] ,CZ0512:['CZ0512','Jablonec nad Nisou','CZ051'] ,CZ0711:['CZ0711','Jeseník','CZ071'] ,CZ0522:['CZ0522','Jičín','CZ052'] ,CZ0612:['CZ0612','Jihlava','CZ061'] ,CZ0313:['CZ0313','Jindřichův Hradec','CZ031'] ,CZ0412:['CZ0412','Karlovy Vary','CZ041'] ,CZ0803:['CZ0803','Karviná','CZ080'] ,CZ0203:['CZ0203','Kladno','CZ020'] ,CZ0322:['CZ0322','Klatovy','CZ032'] ,CZ0204:['CZ0204','Kolín','CZ020'] ,CZ0721:['CZ0721','Kroměříž','CZ072'] ,CZ0205:['CZ0205','Kutná Hora','CZ020'] ,CZ0513:['CZ0513','Liberec','CZ051'] ,CZ0423:['CZ0423','Litoměřice','CZ042'] ,CZ0424:['CZ0424','Louny','CZ042'] ,CZ0206:['CZ0206','Mělník','CZ020'] ,CZ0207:['CZ0207','Mladá Boleslav','CZ020'] ,CZ0425:['CZ0425','Most','CZ042'] ,CZ0523:['CZ0523','Náchod','CZ052'] ,CZ0804:['CZ0804','Nový Jičín','CZ080'] ,CZ0208:['CZ0208','Nymburk','CZ020'] ,CZ0712:['CZ0712','Olomouc','CZ071'] ,CZ0805:['CZ0805','Opava','CZ080'] ,CZ0806:['CZ0806','Ostrava-město','CZ080'] ,CZ0532:['CZ0532','Pardubice','CZ053'] ,CZ0613:['CZ0613','Pelhřimov','CZ061'] ,CZ0314:['CZ0314','Písek','CZ031'] ,CZ0324:['CZ0324','Plzeň-jih','CZ032'] ,CZ0323:['CZ0323','Plzeň-město','CZ032'] ,CZ0325:['CZ0325','Plzeň-sever','CZ032'] ,CZ0100:['CZ0100','Praha','CZ010'] ,CZ0111:['CZ0111','Praha 1','CZ010'] ,CZ011A:['CZ011A','Praha 10','CZ010'] ,CZ0112:['CZ0112','Praha 2','CZ010'] ,CZ0113:['CZ0113','Praha 3','CZ010'] ,CZ0114:['CZ0114','Praha 4','CZ010'] ,CZ0115:['CZ0115','Praha 5','CZ010'] ,CZ0116:['CZ0116','Praha 6','CZ010'] ,CZ0117:['CZ0117','Praha 7','CZ010'] ,CZ0118:['CZ0118','Praha 8','CZ010'] ,CZ0119:['CZ0119','Praha 9','CZ010'] ,CZ0209:['CZ0209','Praha-východ','CZ020'] ,CZ020A:['CZ020A','Praha-západ','CZ020'] ,CZ0315:['CZ0315','Prachatice','CZ031'] ,CZ0713:['CZ0713','Prostějov','CZ071'] ,CZ0714:['CZ0714','Přerov','CZ071'] ,CZ020B:['CZ020B','Příbram','CZ020'] ,CZ020C:['CZ020C','Rakovník','CZ020'] ,CZ0326:['CZ0326','Rokycany','CZ032'] ,CZ0524:['CZ0524','Rychnov nad Kněžnou','CZ052'] ,CZ0514:['CZ0514','Semily','CZ051'] ,CZ0413:['CZ0413','Sokolov','CZ041'] ,CZ0316:['CZ0316','Strakonice','CZ031'] ,CZ0533:['CZ0533','Svitavy','CZ053'] ,CZ0715:['CZ0715','Šumperk','CZ071'] ,CZ0317:['CZ0317','Tábor','CZ031'] ,CZ0327:['CZ0327','Tachov','CZ032'] ,CZ0426:['CZ0426','Teplice','CZ042'] ,CZ0525:['CZ0525','Trutnov','CZ052'] ,CZ0614:['CZ0614','Třebíč','CZ061'] ,CZ0722:['CZ0722','Uherské Hradiště','CZ072'] ,CZ0427:['CZ0427','Ústí nad Labem','CZ042'] ,CZ0534:['CZ0534','Ústí nad Orlicí','CZ053'] ,CZ0723:['CZ0723','Vsetín','CZ072'] ,CZ0626:['CZ0626','Vyškov','CZ062'] ,CZ0724:['CZ0724','Zlín','CZ072'] ,CZ0627:['CZ0627','Znojmo','CZ062'] ,CZ0615:['CZ0615','Žďár nad Sázavou','CZ061'] }; // konec PHP výpisu function addOption(co,kam) { var oOption = document.createElement('option'); oOption.value=co[0]; oOption.innerHTML=co[1]; kam.appendChild(oOption); } function fillFirst() { for(inx in kraje){ addOption(kraje[inx],oKraj)} for(inx in okres){ addOption(okres[inx],oOkres)} } function edOkres(tenKraj) { oOkres.length=1; for(inx in okres) { if (tenKraj == okres[inx][2] || tenKraj == '-----') addOption(okres[inx],oOkres)} } function edKraj(tenOkres) { if(tenOkres == '------') { oOkres.length=0; for(inx in okres){ addOption(okres[inx],oOkres)}; oKraj.value="-----";} if(oKraj.value != okres[oOkres.value][2]) oKraj.value = okres[oOkres.value][2] } </script> </HEAD> <body onload="fillFirst()"> Nazdar <form name="vyber"> kraj: <select name="kraj" onchange="edOkres(this.value)"></select> okres: <select name="okres" onchange="edKraj(this.value)"></select> </form> <script> var oKraj=document.forms.vyber.kraj; var oOkres=document.forms.vyber.okres; </script> </body> </html> |
||
Časová prodleva: 5 měsíců
|
|||
vospunt Profil |
#3 · Zasláno: 9. 9. 2010, 15:10:23
pokud zvolíš na tvrdo tak při načtení stránky proveď příkaz do db ajaxerm na vypsání
var kraj = $('#kraj option:selected').val(); $.get('funkce/ajax2.php?kraj='+kraj, function(data){ $('#okres').show().html(data); }); tohle se teda provede po načtení stránky a potom pokračujem tím co máte v js už napsané change(function(){...}) |
||
Časová prodleva: 14 let
|
0