Zdravím.
Narazil jsem na problém s výpisem automobilových dílů z databáze.
V databázi je uložena značka automobilu(např. BMW), část automobilu (např. motor, podvozek, karoserie . . . ) a dále pak díly, které patří značce a dané části, (např. píst motoru BMW).
Díly jsem chtěl vypsat následujícím způsobem na hlavní stránce by byly dva prvky <SELECT></SELECT>.
V prvním <SELECTu> by si uživate vybral značku vozu, například již zmiňované BMW. Já nyní potřebuji docílit toho, aby se mi ve druhém <SELECTu> nevypisovaly již všechny části automobilu, ale aby se v nabídce zobrazily jen ty části odpovídající značce BMW z databáze.
Jakmile si pak uživatel vybere danou část vozu tak by se měla vypsat tabulka dílu spadajících do značky BMW a části např. motor_bmw.
Lépe se to vysvětluje na příkladu.
Výborně to má udělané INVIA.cz http://www.invia.cz
Vyberu si zemi zájezdu Řecko a ve druhém <SELECTu> se mi nevýpíší ostrovy z jiných zemí, ale jen ostrovy z Řecka.
Snad jsem dostatečně můj "problém" popsal a vysvětlil.
Byl bych rád za jakékoliv rady, tipy, nápady, informace.
Mnohokrát děkuji.
Fórum › PHP
Výpis dílů z databáze
To Roman : tak máš dvě možnosti
a) (pro uživatele horší) Při změně vyýběru udělat refresh stránky a upravovat jednotlivé dotazy na databázi
b) (elegantnější) Řešit to přes Ajax
KIIV: predstav si kolko tam moze mat dielov... do aleluja... vsetko zakazdym tahat... no au...
najlepsie to asi vyriesis ajaxom... na vyhladavacej stranke budes mat dva selecty z vyberom znacky a casti auta + 1 div s nastavenym ID... na oba selecty budes mat napr. udalost onchange (ak sa nemylim) naviazanu na funkciu ktora bude zistovat ci su oba selecty vybrane... ak ano, pomocou ajaxu posles 'ziadost' na subor (s premennymi vybranych selectov) ktory vytvori ten treti select obsahujuci jednotlive diely a vlozi ho do stranky, do divu ktory si si vytvoril na zaciatku....
btw: len tvoj problem nepatri do php sekcie :)
To marioff : nemyslim ze by to byl problem.. naprosta vetsina webu je tak silene ohromna, ze na to clovek potrebuje aspon 5Mb linku... (a jeste pokud to nekdo dela v frontpage tak minimalne 2nasobek :))
kdyz se naaahodou snazim na cokoliv kouknout z mobilu tak je to na dlouho...
takze si s tim vetsina lidi nejaky problemy nedela :)
EDIT: ber s nadsazkou :o)
To KIIV : jj mas naprostu pravdu... ale na druhu stranu by som takym programatorom lamal ruky... lebo ja dost casto pouzivam mobil na net cez EDGE a niekedy to je fakt zufalstvo.. :(
marioff napsal:
KIIV: predstav si kolko tam moze mat dielov... do aleluja... vsetko zakazdym tahat... no au...
najlepsie to asi vyriesis ajaxom... na vyhladavacej stranke budes mat dva selecty z vyberom znacky a casti auta + 1 div s nastavenym ID... na oba selecty budes mat napr. udalost onchange (ak sa nemylim) naviazanu na funkciu ktora bude zistovat ci su oba selecty vybrane... ak ano, pomocou ajaxu posles 'ziadost' na subor (s premennymi vybranych selectov) ktory vytvori ten treti select obsahujuci jednotlive diely a vlozi ho do stranky, do divu ktory si si vytvoril na zaciatku....
btw: len tvoj problem nepatri do php sekcie :)
Mockrát diky za návod jak to pořešit, ale AJAX bohužel neovládám :-( Nemohl by jsi prosím hodit nějaký mini příklad ??? Ať se mám čeho chytit ???
Předem děkuji ;-)
Takže po progoogleném dnu a noci vím jak sestavit dva a více na sobě závislých <SELECTů> , ale pořád se mi nedaří naprogramovat jednu věc.
Jakmile si v posledním <SELECTu> zvolím položku, tak potřebuju vypsat do té samé stránky data z databáze která patří do položky prvního <SELECTu> a zároveň do druhého <SELECTu>.
uvedu příklad:
V prvním selectu vyberu značku vozu BMW a ve druhém selectu vyberu MOTOR........a teď potřebuju vypsat do tabulky díly z databáze, které patří ke značce BMW a zároveň patří do kategorie MOTOR. Nevím jak mám předávat nebo uchovávat parametry z těch dvou selectů :-(
uvital by som trosku viac snahy.. napr. ukazat co si doteraz nakodil... ale som sa zlutoval tak tu to mas:
<script type="text/javascript">
function nacitaj() {
var obsahznacky=document.getElementById("znacka").value;
var obsahkategorie=document.getElementById("kategorie").value;
if (obsahznacky>=1 && obsahkategorie>=1) {
zobraztabulku(obsahznacky,obsahkategorie);
}
}
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else {
alert("vas browser nepodporuje ajax!!");
}
function zobraztabulku(znacka,kategoria) {
xmlhttp.onreadystatechange = zmena;
xmlhttp.open("GET", "tabulka.php?znacka="+znacka+"&kategoria="+kategoria, true);
xmlhttp.send(null);
}
function zmena() {
if (xmlhttp.readyState == 4) {
document.getElementById("tabulka").innerHTML = xmlhttp.responseText;
}
}
</script>
<select id="znacka" onchange='nacitaj()'>
<option value="0">Vyber si značku</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
<option value="3">Honda</option>
<option value="4">Nissan</option>
</select>
<select id="kategorie" onchange='nacitaj()'>
<option value="0">Vyber kategóriu dielu</option>
<option value="1">Motor</option>
<option value="2">Karosárčina</option>
<option value="3">Elektrika</option>
<option value="4">Tesnenia</option>
</select>
<div id="tabulka"></div>
ostava uz len urobit subor tabulka.php s vypisom vybranych dielov.. pomocou parametrov znacka a kategoria.... to uz hadam zvladnes aj sam...
ps: napisal som to z brucha pri jednej cigaretke tak hadam to pojde bez problemu...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Výpis z databáze — založil Lukáš
Výpis z databáze — založil Maros
Výpis z databáze — založil Twino
Výpis z databáze — založil fix
Výpis jména z databáze — založil Adam Hofhans
Moderátoři diskuze