Här är en mycket enkel procedur. Jag ska bara visa huvudskelettet. Att lägga till flash-meat kommer att vara på din sida.
Anta att vi har två i
ajax.php
så här:
<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>
Så vad behöver vi? Vi måste fylla i den andra
Här kommer javascript-delen (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>
Detta kommer att skicka begäran till process.php
Nu kommer process.php
Här behöver vi data för att fylla i den andra
Vad går nu in i ?
Du måste skriva ut något så här:
<option value="11">value11</option>
<option value="12">value12</option>
<option value="13">value13</option>
<option value="14">value14</option>
Värde och texten inuti fyller upp med dina behov.
Eftersom det kommer från databasen:
- Du kan hämta det överordnade värdet i
process.php
med$_GET['parentValue']
- Med det värdet, fråga databasen
- Från resultatet som returneras från databasen, använd sedan en loop
medan
,foreach
ellerför
(beroende på hur du hämtar den), gör.
- du är klar!
För multival
för att göra livet lite enklare kan du använda chosen multiselect
Ett råd
mysql_*
är utfasad. använd PDO istället. Här är en länk till en handledning