Hier ist ein sehr einfaches Verfahren. Ich werde nur das Hauptskelett zeigen. Das Hinzufügen von Flash-Fleisch liegt bei Ihnen.
Angenommen, wir haben zwei <select>
in ajax.php
so:
<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>
Was brauchen wir also? Wir müssen den 2. <select>
füllen im Falle seiner Auswahl.
Hier kommt der Javascript-Teil (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>
Dadurch wird die Anfrage an process.php
gesendet
Jetzt kommt die process.php
Hier benötigen wir die Daten zum Befüllen des 2. <select>
Was kommt nun in <select>
?
<option value="someValue">someText</option>
Sie müssen etwa Folgendes ausgeben:
<option value="11">value11</option>
<option value="12">value12</option>
<option value="13">value13</option>
<option value="14">value14</option>
Wert und der Text darin füllen Sie mit Ihren Bedürfnissen aus.
Wie es aus der Datenbank kommt:
- Sie können den übergeordneten Auswahlwert in
process.php
abrufen mit$_GET['parentValue']
- Fragen Sie mit diesem Wert die Datenbank ab
- Verwenden Sie dann aus dem von der Datenbank zurückgegebenen Ergebnis eine Schleife
while
,foreach
oderfor
(je nachdem, wie Sie es abrufen), machen Sie den<option value="someValue">someText</option>
. - Du bist fertig!
Für Mehrfachauswahl
Um das Leben ein wenig einfacher zu machen, können Sie chosen multiselect verwenden
Ein Rat
mysql_*
ist veraltet. Verwenden Sie stattdessen PDO. Hier ist ein Link zu a Anleitung