Select2使用ajax和php基于第一个(多个)选择填充第二个字段
Select2 populate a second field based on first (multi)selection using ajax and php
如何实现这一点?我有第一个多选选项字段(parentfield),我需要根据第一个的值弹出第二个选项字段(childfield)
<select id="parentfield" name="parentfield[]" multiple>
<option value="1">first value</option>
<option value="2">second value</option>
<option value="3">third value</option>
</select>
这个parentfield应该将值发布到php脚本,并且脚本将数据返回到子字段,如所示
<select id="childfield" name="childfield[]">
<optgroup label="Group 1">
<option value="1">first value child</option>
<option value="2">second value child</option>
</optgroup>
<optgroup label="Group 2">
<option value="3">third value child</option>
<option value="4">fourth value child</option>
</optgroup>
</select>
因此,我有了返回json的php代码,我想用它来构建值(Obs.:这是一个自定义组件中的joomla-ajax请求)
<?php
$materiaspost = implode(',',JRequest::getVar('disciplina'));
$materias = carregarcampos('SELECT * FROM #__marqueicerto_materias WHERE disciplina IN ('.$materiaspost.') AND assunto=0 ORDER BY materia ASC','list');
foreach ($materias as $materia) {
$submaterias = carregarcampos('SELECT * FROM #__marqueicerto_materias WHERE assunto='.$materia['id_materia'].' ORDER BY materia ASC','list');
foreach ($submaterias as $submateria) {
// $vetor[$materia['materia']][$submateria['materia']] = array($submateria['id_materia']=>$submateria['materia']);
$vetor[$materia['materia']][$submateria['id_materia']] = $submateria['materia'];
}
}
?>
应该如何看待我的jquery来实现这一点?我必须修改我的php代码才能生成不同的json响应吗?
<html>
<head>
<title>Multiple drop down list </title>
<SCRIPT language=JavaScript>
function reload(form)
{
var val=form.cat.options[form.cat.options.selectedIndex].value;
self.location='yourcurrentfilename.php?cat=' + val ;
}
</script>
</head>
<body>
<?Php
$cat=$_GET['cat'];
$quer2="SELECT category,cat_id FROM category order by category";
if(isset($cat)){
$quer1="SELECT DISTINCT subcategory FROM subcategory where cat_id=$cat order by subcategory";
}
echo "<select name='cat' onchange='"reload(this.form)'"><option value=''>Select one</option>";
while($cat_name = mysql_fetch_array($quer2)) {
if($cat_name['cat_id']==$cat){
echo "<option selected value=".$cat_name['cat_id'].">".$cat_name['category']."</option>"."<BR>";
}
else{
echo "<option value=".$cat_name['cat_id'].">".$cat_name['category']."</option>";
}
}
echo "</select>";
echo "<select name='subcat'><option value=''>Select Two</option>";
while($subcat_name = mysql_fetch_array($quer1)) {
echo "<option value=".$subcat_name['subcategory'].">".$subcat_name['subcategory']."</option>";
}
echo "</select>";
?>
</body>
</html>
相关文章:
- 如何将返回的值应用于多个不同位置的多个选择器
- Jquery不允许来自多个选择列表的相同值
- jquery获取多个选择框的值作为数组
- 从多个选择框获取多个数据'
- 如何制作一个具有多个选择器的jQuery插件,在每个选择器上分别进行匹配
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- 使用 jQuery(移动)更新多个选择标签
- 多个选择框聚焦第一个选择框
- 多个<选择>使用选择,选项删除(已选择)
- 创建唯一选项,然后使用 JavaScript 填充多个选择
- 更改多个选择选项后的jQuery触发器事件
- 使用 onChange 清除多个选择和复选框
- jQuery结合了多个选择器
- 如何使用replaceWith()一次替换多个选择器
- 将多个选择值传递给函数以更新图像
- jQuery隐藏多个选择器时显示
- 如何使用Jquery基于多个选择框更改总和
- 带有多个选择框的Jquery表单验证
- 在多个选择框JQuery上动态生成URL
- Angular ng通过ng选项重复多个选择字段,而不显示已选择的数据