如何使用onchange jquery post填充两个不同的选择框

时间:2015-09-19 08:13:08

标签: jquery post onchange

研究了但我无法找到我的解决方案。我有选择的一摞书。

<select name="book" id="book">
<option value="1">fasion</option>
<option value="2">games</option>
<option value="3">sports</option>
</select>

我正在发送带有jquery帖子的book id并获取记录,并在数据库的#slcCatList id中的另一个选择框中填充它的类别。

$('#book').change(getDropdownLoads);
function getDropdownLoads() {
    var bid = $(this).val();
    $.post('fetchdata.php', { master_book_id : bid }, populateDropdown, 'html');
}

function populateDropdown(data) {
    if (data != 'error') {
        $('#slcCatList').html(data);
    }
}

fetchdata.php针对选择框#slcCatList的此查询返回结果 工作良好。

select * from books where id = $bid" // which also has author_name

<select id="slcCatList "> 
</select>

我需要的是,同样我想使用相同的帖子请求填充另一个选择框#authorName来对抗同一个查询。

<select id="authorName ">
// fetched author_name
</select>

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

假设你在后端使用mysql。我提供了一些代码,有一些假设的变量 -

通过使用json,您可以编写响应来分隔两个选择标记。

<强> PHP

//---
$dropDown1='<select id="slcCatList ">';
$dropDown2='<select id="authorName">';

$q="select * from books where id = $bid" ;
$rs=mysql_query($q);
while($row=mysql_fetch_row($rs,MYSQL_BOTH)
{
 $dropDown1 .='<option>'.$row['category'].'</option>';
 $dropDown2 .='<option>'.$row['name'].'</option>';
}
$dropDown1 .='</select >';
$dropDown2 .='</select >';

$result=array("category"=>$dropDown1,"name"=>$dropDown2);
echo json_encode($result);

在客户端,我表示您可能需要的功能定义。你必须创建两个div来包装你的两个下拉菜单说(slcCatListWrapper,authorNameWrapper)

<强> JAVASCRIPT

function populateDropdown(data) {
    if (data != 'error') {
        var obj=JSON.parse(data);
        $('#slcCatListWrapper').html(obj.category);
        $('#authorNameWrapper').html(obj.name);
    }
}