Zdravím, potřeboval bych poradit.
Mám dva selecty. V první je kraj a podle toho, jaký zadám kraj, tak se mi zobrazí města ve druhém selectu.
Po stránce PHP vím, jak vše vygenerovat. Pouze nevím, jak to propojit s js..
Děkuji za rady.
Fórum › JavaScript, AJAX, jQuery
Generování obsahu select podle jiného select
Je tu nekolik moznosti:
1) Mit prepripravene ty SELECTY a akorat vzdycky zobrazit ten spravny a zmenit jeho jmeno treba na "mesto" (to abys potom nemel bordel v tom PHP pri prijimani dat z formulare)
2) Mit jeden fyzycky SELECT a skryvat a odkryvat ty polozky pomoci display:none/block - s tim ma ale podle mych zkusenosti opera
3) Mit sice jeden fyzycky SELECT ale prikazde zmene vymazat vsechny polozky a pak tam znovy nasoupat vhodne. V JS bys je mel nadefinovane treba jako 2D pole.
4) Ajax. Podobne jako bod 3, vzdy bysis ty polozky stahnul z nejakeho PHP skriptu a vlozil je tam.
Tak tedy podle jednoho článku na netu jsem vytvořil to, co bych chtěl. A dokonce to jede.. Pouze mě to výsledky otevírá v Alert oknu, což jsem nechtěl. Chtěl jsem, aby se vypsal select přímo do stránky
Jak to mám?
<script type="text/javascript">
function mesto() {
var http_request = false;
var string = document.getElementById('string').value;
var request = "string="+string;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (eror) {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
http_request.onreadystatechange = function() { zpracuj(http_request); };
http_request.open('POST', 'include/mesta.php', true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send(request);
}
function zpracuj(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
alert(http_request.responseText);
} else {
alert('Chyba');
}
}
}
</script>
Mesta.php vracejí celý select a funkce mesto() je volana pri kliknuti na pozadovany kraj..
Dekuji za odpovedi
a mas to mesto() jako onchange udalost u toho prvniho policka?
Ok, tak uz jenom jedna poznamka k navrhu:
vytahovat si odnekud data timhle zpusobem
var string = document.getElementById('string').value;
neni uplne spravne, lepsi je je predavat jako parametr. Pak je takova funkce lepe prenosna.
function mesto(mesto) {
var http_request = false;
var request = "string="+mesto;
<select onchange="mesto(this.value)">
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
Mysql místo select, bych chtel dát do formuláre data z jiného vyplne… — založil minolot
Select*from — založil Salieri
Select — založil Zuben
Moderátoři diskuze