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"
}
]
}
]
感谢您的帮助!