JSP中下拉框是从数据库中读取的。当下拉框选择是,后面的文本框显示对应的信息,如何做?最好有例子
本人用的PHP,其实思路应该是差不多的。
我用的是AJAX,对每次下拉框的onchange事件,作一次异步请求,请求的当然就是服务器的处理程序了(一般是查询数据库),获取返回的json结果,然后再通过JS显示在后面的文本框
下面是分类联动选择的部分JS代码:
//子级category选择
getChildCategory:function(p,c,g){
//$("#pArea").live('change',function(){
var parent_id = $("#" + p).val();
if(parent_id == 0){
return false;
//$("#" + c).hide();
//$("#" + g).hide();
}
$.ajax({
type:"POST",
url:"include/getNextCategory.php?type=child",
dataType:"json",
data:{"parent_id":parent_id},
success:function(json){
if(json.success == 1){
//alert("这里能执行???");
//$("#" + c).show();
$("#" + c).html("");
$("#" + c).append(json.next_category);
//$("#" + c).get(0).selectedIndex = 0;
$("#" + g).html("");
} else {
//alert("failed");
//$("#" + c).html("<option>其他</option>");
}
}
});
//alert(p_category + " > " + c_category + " > " + g_category);
$("#category").val(p_category + " > " + c_category + " > " + g_category);
},
后台程序也很简单:
if($type == 'child'){
$query = "SELECT cid, name FROM aidu_category WHERE pid = '$pid'";
}
if($type == 'grand'){
$query = "SELECT cid, name FROM aidu_category WHERE pid = '$cid'";
}
$db->query($query);
$arr['next_category'] = "";
if($pid == '0' || $cid == '0'){
$arr['success'] = 0;
}
if($db->db_num_rows() > 0){
$arr['success'] = 1;
while($row = $db->fetch_assoc()){
$arr['next_category'] .= "<option value=" . $row['cid'] . ">" . $row['name'] . "</option>";
}
} else {
$arr['success'] = 0;
//echo "没有查询到子级区域";
}
echo json_encode($arr);
- -本人技术比较菜,请见谅
顺便注明下信息