[英]jQuery cascading dropdown issues
我已經在這里獲得了一些幫助,但是不幸的是,我仍然在級聯下拉菜單中苦苦掙扎。 我需要的<select>
下面根據的選擇來更新#city
,一個<select>
它上面的框。
我的代碼中是否有任何明顯的錯誤?
HTML / jQuery:
<select name="club" class="dropdown" id="club">
<script>
$('#city').change(function(){
var $club = $('#club');
$club.find('option:not([value="default"])').remove(); //Remove previous items
$.getJSON('getClubs.php', {city:$(this).val()}, function(clubs){
$.each(clubs, function(index, city){
$club.append('<option value="'+row[0]+'">'+row[1]+'</option>');
});
});
});
</script>
</select>
PHP(getClubs.php):
<?php
date_default_timezone_set('Europe/London');
$day = date("l");
$time = date("G");
if ($time >= 21) {
$day = date('l', strtotime($day .' +1 day'));
}
$city = $_POST['city'];
if ($day == Monday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY')";
}
else if ($day == Tuesday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY')";
}
else if ($day == Wednesday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY')";
}
else if ($day == Thursday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY')";
}
else if ($day == Friday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY')";
}
else if ($day == Saturday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY')";
}
else if ($day == Sunday) {
$query = "SELECT name FROM nights WHERE city = '$city' ORDER BY FIELD(day, 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY')";
}
$result = mysql_query($query);
$items = array();
if($result && mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result)) {
$items[] = array( $row[0], $row[1] );
}
}
mysql_close();
// convert into JSON format and print
echo json_encode($items);
?>
我認為這將是您的代碼的問題:
1. Take look the html code?
<select name="club" class="dropdown" id="club">
</script>
Question:
Why you have to trigger this $("#city") neither to use of $('.dropdown') or $('#club') itself. Is that be posible to trigger the option ? I think its not .
try:
$('.dropdown').change(function(){
var $club = $('#club');
$club.find('option:not([value="default"])').remove(); //Remove previous items
$.getJSON('getClubs.php', {city:$(this).val()}, function(clubs){
$.each(clubs, function(index, city){
$club.append('<option value="'+row[0]+'">'+row[1]+'</option>');
});
});
});
2. Where is the variable $row coming from?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.