[英]Populating multiple dependent drop downs from database
我有2個下拉菜單。 我在第一個菜單中填充了可能的大洲,並希望第二個下拉菜單包含所有國家/地區,具體取決於在第一個菜單中選擇的大洲。 我只有1個帶有列的mysql表:continent-> country。 當前,即使選擇了一個洲,下拉列表中也有來自所有大洲的所有國家/地區。 謝謝您的幫助! 這是我的代碼:
HTML
<input type="text" class="autosuggest" id="autosuggest2" placeholder="Select Country...">
<div class="country">
<ul class="result" id="result2"></ul>
</div>
<input type="text" class="autosuggest" id="autosuggest3" placeholder="Select Area...">
<div class="area">
<ul class="result" id="result3"></ul>
</div>
jQuery / Ajax
$(document).ready(function() {
$('#autosuggest1').keyup(function() {
var continent = $(this).attr('value');
$.post('php/dropdown.php', {continent:continent}, function(data) {
$('#result1').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('#autosuggest1').attr('value', result_value);
$('#result1').html('');
$('#result1').focusout('');
});
});
});
$('#autosuggest2').keyup(function() {
var country = $(this).attr('value');
$.post('php/dropdown.php', {country:country}, function(data) {
$('#result2').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('#autosuggest2').attr('value', result_value);
$('#result2').html('');
$('#result2').focusout('');
});
});
});
});
的PHP
require_once '../connect/connectdropdown.php';
if (isset($_POST['continent']) == true && empty($_POST['continent']) == false) {
$continent = mysql_real_escape_string($_POST['continent']);
$query = mysql_query("SELECT DISTINCT `continent` FROM `area` WHERE `continent` LIKE '$continent%'");
while (($row = mysql_fetch_assoc($query)) !== false) {
echo '<li>', $row['continent'], '</li>';
}
}
if (isset($_POST['country']) == true && empty($_POST['country']) == false) {
$country = mysql_real_escape_string($_POST['country']);
$query = mysql_query("SELECT DISTINCT `country` FROM `area` WHERE `country` LIKE '$country%'");
while (($row = mysql_fetch_assoc($query)) !== false) {
echo '<li>', $row['country'], '</li>';
}
}
我想知道你是否還在。 無論如何,我會建議一些事情:
僅執行一個查詢,將其傳遞給json,然后將其提供給javascript。
的PHP
require_once '../connect/connectdropdown.php';
$id=0;
$result=array();
$query = mysql_query("SELECT * FROM `area` ");
while (($row = mysql_fetch_assoc($query)) !== false) {
$result[$id]=$row;
$id++;
}
echo json_encode($result);
Java腳本
$(document).ready(function() {
var $mysqlData;
$.post('php/dropdown.php', {continent:continent}, function(data) {
//Json Data from server:
alert('JSON data: '+data)
//you can transform the data from PHP-Json to Javascript Object
$mysqlData = jQuery.parseJSON(data)
//now you can access your data like:
alert ('My first continent: '+$mysqlData[0].continent+' and it\'s first country: '+$mysqlData[0].country)
});
$('#autosuggest1').keyup(function() {
//Now you can use $mysqlData inside your logic
})
$('#autosuggest2').keyup(function() {
//You can use $mysqlData here too
})
});
我沒有測試此代碼,可能會有一些錯誤,但我建議您采用該邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.