| 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: 16 let
|
|||
0