如何使用 onchange jquery post 填充两个不同的 select 框
how to populate two different select boxes with onchange jquery post
对此进行了研究,但我找不到我的解决方案。我有 select 盒像这样的书。
<select name="book" id="book">
<option value="1">fasion</option>
<option value="2">games</option>
<option value="3">sports</option>
</select>
我正在发送带有 jquery post 的图书 ID,并获取记录并将其类别填充到另一个 select 框中,ID 为数据库中的 #slcCatList。
$('#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 针对 select 框的此查询返回结果 #slcCatList
工作正常。
select * from books where id = $bid" // which also has author_name
<select id="slcCatList ">
</select>
我需要的是,同样我想填充另一个 select 框 #authorName 使用相同的 post 请求针对同一查询。
<select id="authorName ">
// fetched author_name
</select>
我该怎么做?
假设您在 backend.I 使用 mysql 我提供一些代码,有一些假设变量 -
通过使用 json,您可以编写响应来分隔两个 select 标签。
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);
}
}
对此进行了研究,但我找不到我的解决方案。我有 select 盒像这样的书。
<select name="book" id="book">
<option value="1">fasion</option>
<option value="2">games</option>
<option value="3">sports</option>
</select>
我正在发送带有 jquery post 的图书 ID,并获取记录并将其类别填充到另一个 select 框中,ID 为数据库中的 #slcCatList。
$('#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 针对 select 框的此查询返回结果 #slcCatList 工作正常。
select * from books where id = $bid" // which also has author_name
<select id="slcCatList ">
</select>
我需要的是,同样我想填充另一个 select 框 #authorName 使用相同的 post 请求针对同一查询。
<select id="authorName ">
// fetched author_name
</select>
我该怎么做?
假设您在 backend.I 使用 mysql 我提供一些代码,有一些假设变量 -
通过使用 json,您可以编写响应来分隔两个 select 标签。
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);
}
}