我正在設置動態下拉菜單:選擇#分類上的選項會通知select#subcat的內容。JQuery:.change中的變量不會顯示在.load中
這是選擇#類別中的HTML:
<select name="category" id="category">
<option>Click Here to choose a category</option>
<?php foreach ($categories as $key => $category) { ?>
<option value="<?php echo $key ?>"><?php echo $category ?></option>
<?php } ?>
</select>
<select name="subcat" id="subcat">
<option><-- First Choose a Category</option>
</select>
這是jQuery的語句:
$(document).ready(function(){
$("select#category").change(function(){
$("select#subcat").load("subcats.php",{ id: $(this).val(), ajax: 'true'});
});
});
這是subcats.php:
<?php
//source of categories
include("config.php") ;
//initiate option list
$options = '<option value="">Choose a Sub-category</option>'."\n" ;
if(!empty($_GET["id"])) {
//iterate through the categories
foreach ($categories as $key => $category) {
if ($_GET["id"] == $key) {
//select the data source
$subcats = file('subcat/'.$key.'.dat', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) ;
natsort($subcats);
//create the rest of the option list
foreach ($subcats as $subcat) {
list ($subname,$subkey) =explode ("\t", $subcat) ;
$options .= '<option value="'.$subkey.'">'.$subname.'</option>'."\n" ;
}
echo $options ;
}
}
} else {
// if no variable given provide option list as error check
echo '<option value=""><-- Choose a Category First</option>
<option value="">Foo Bar</option>'."\n" ;
}
?>
我的理解是, id: $(this).val()
提供從select#category
中選擇的選項以供在php文檔中使用;我離開這裏嗎?真的,如果我正在閱讀文檔,我甚至不需要, { id: $(this).val(), ajax: 'true'}
位 ajax請求.load
正在工作,因爲錯誤檢查菜單項出現在select#subcats
中。
然而,這一切都顯示:變量似乎不應該堅持下去......
Li'l幫助嗎?提前致謝!
呢'$(本).VAL()'不是指'$(「#選擇SUBCAT 「)'? – 2010-10-12 14:24:51
這裏'this'是在'select#category'更改處理程序的上下文中的,所以它應該仍然是'select#category'。 – VoteyDisciple 2010-10-12 14:26:34