Zde je velmi jednoduchý postup. Ukážu jen hlavní kostru. Přidání flash-masa bude na vaší straně.
Předpokládejme, že máme dva <select>
v ajax.php
takhle:
<select id="parent">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
<option value="4">value4</option>
</select>
<select id="child">
</select>
Takže co potřebujeme? Musíme vyplnit 2. <select>
na události jeho výběru.
Zde přichází javascriptová část (ajax.php)
<script type="text/javascript">
$(function(){
$('#parent').change(function(){ //on change event
var parentVal = $('#parent').val(); //<----- get the value from the parent select
$.ajax({
url : 'process.php', //the url you are sending datas to which will again send the result
type : 'GET', //type of request, GET or POST
data : { parentValue: parentVal}, //Data you are sending
success : function(data){$('#child').html(data)}, // On success, it will populate the 2nd select
error : function(){alert('an error has occured')} //error message
})
})
})
</script>
Tím se požadavek odešle na process.php
Nyní přichází process.php
Zde potřebujeme data k naplnění 2. <select>
Co je nyní uvnitř <select>
?
<option value="someValue">someText</option>
Musíte vypsat něco takového:
<option value="11">value11</option>
<option value="12">value12</option>
<option value="13">value13</option>
<option value="14">value14</option>
Hodnota a text uvnitř vyplní vaše potřeby.
Jak to bude pocházet z databáze:
- Hodnotu výběru rodiče můžete získat v
process.php
s$_GET['parentValue']
- S touto hodnotou zadejte dotaz do databáze
- Potom z výsledku vráceného z databáze použijte smyčku
while
,foreach
nebofor
(v závislosti na způsobu, jakým jej získáváte), vytvořte<option value="someValue">someText</option>
. - jste hotovi!
Pro vícenásobný výběr
abyste si život trochu usnadnili, můžete použít vybraný vícenásobný výběr
Rada
mysql_*
je zastaralá. místo toho použijte CHOP. Zde je odkaz na tutoriál