1
我有2個下拉菜單。第一個我填充了可能的大洲,並希望第二個下拉菜單包括所有國家,具體取決於在第一個菜單中選擇的大洲。我只有1個MySQL表與列:大陸 - >國家。目前,即使選擇了一個大陸,也有來自各大洲的所有國家。感謝您的幫助! 這裏是我的代碼:從數據庫填充多個依賴的下拉菜單
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 /阿賈克斯
$(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>';
}
}
編輯:哦,等等,你是國家查詢不在大陸上過濾。在國家查詢中,您需要通過國家和洲,以便您可以過濾continent ='blah'和國家LIKE'blah%' – Corbin
感謝Corbin!其中'continent' ='南美洲'AND'country' LIKE'$ country%'「);其中'continent' ='大洋洲'AND'country' LIKE'$ country%'」);這是否意味着我需要每個大陸的查詢? – Hobby99
你需要在南美和大洋洲的報價(如果你接受它作爲用戶輸入,不要忘記使用mysql_real_escape_string),但這就是主意。根據你在做什麼,你可能應該考慮數據庫規範化。 (IE擁有continents表,包含continent_id和name,然後是country_id,continent_id和name的國家表。) – Corbin