0
我想要發生的是當我從第一個選擇框中選擇一個項目時,第二個選擇框從parseJSON中填充。JQuery parseJSON並填充第二個選擇框
我有2個選擇框:#web和#cats
幅:具有(目前)3個選項 - 所有網站(值= 0),網站1(值= 1)和網站2(值= 2)
當我從#web中選擇我應該只能得到該特定網站的類別,但是在PHP中我已經考慮過「所有網站」並且它將類別複製到每個網頁對象中,但我還添加了「所有網站「的json數組,所以如果重新選擇,選擇框將重新填充。
這是PHP功能(爲了創建JSON):
function catWebMix($user) {
$categories = getCategories($user);
$webAll = array('ID'=>0, 'WebID'=>'All', 'WebName'=>'All Websites');
$webSites = getWebsites($user);
array_unshift($webSites,$webAll);
$output = array();
foreach ($webSites as $k => $v) {
$output[$k] = $v;
foreach ($categories as $key => $value) {
if ($value['WebID'] == '0') {
$value['WebID'] = $v['ID'];
$output[$k]['Category'][] = $value;
} else if ($value['WebID'] == $v['ID']) {
$output[$k]['Category'][] = $value;
}
}
}
return array($output, json_encode($output));
exit;
}
我分配給Smarty一個變量。
$webCats = catWebMix($user);
$smarty->assign('webCats', $webCats);
然後我在JQuery中調用它。這是我的失敗嘗試創建選擇框更改,我不確定如何去做。
<script type="text/javascript">
var obj = $.parseJSON({$webCats[1]});
$('#web').on('change', function() {
var web = $(this).val();
$.each(obj, function() {
if (web == obj.ID) {
$.each(obj.Category, function (i,v) {
$('#cats').append("<option>"+v[3]+"</option>");
});
}
});
});
</script>
我想要它做什麼:
刪除在#cats所有選項屬性
重新填充#cats從parseJson數據的基礎上,從#web值。 #web value =(第一個)JSON中的ID。
廣場Category.ID作爲期權價值,並Category.CatTitle文本
JSON數組如下所示:
[
{
"ID": 0,
"WebID": "All",
"WebName": "All Websites",
"Category": [
{
"ID": "1",
"WebID": 0,
"CatTitle": "Category 1"
}
]
},
{
"ID": "1",
"WebID": "web1",
"WebName": "Website 1",
"Category": [
{
"ID": "1",
"WebID": "1",
"CatTitle": "Category 1"
},
{
"ID": "2",
"WebID": "1",
"CatTitle": "Category 2"
}
]
},
{
"ID": "2",
"WebID": "web2",
"WebName": "Website 2",
"Category": [
{
"ID": "1",
"WebID": "2",
"CatTitle": "Category 1"
}
]
}
]
感謝您的幫助!