实现原理:根据省份值的变动,通过jquery把sf_id传给后台php文件处理,php通过查询mysql,得到对应的地市名,并返回json数据给前端处理,即实现联动效果!
为便于讲解,这里直接给出省份:河南省(sf_id=1) 浙江省(sf_id=2),而地市和学生信息则分别建立两张数据表!编码方式均为:utf8!新建数据库并执行以下sql语句!
代码如下:
/* 地市表 */
create table if not exists `dishi`(
`ds_id` int(3) auto_increment not null primary key,
`sf_id` int(3) not null default '0',
`ds_name` varchar(50) not null
);
/* 学生表 */
create table if not exists `xuesheng`(
`xs_id` int(3) auto_increment not null primary key,
`ds_id` int(3) not null default '0',
`xs_name` varchar(50) not null
);接着搭个前台架子:
. 代码如下:
<table border="0" width="100%">
<tr>
<td width=100>省份</td>
<td>
<select name="sf_id" id="sf_id" title="选择省份">
<option value="1">河南省</option>
<option value="2">浙江省</option>
</select>
</td>
</tr>
<tr>
<td>地市</td>
<td>
<select name="ds_id" id="ds_id" title="选择地市">
</select>
</td>
</tr>
<tr>
<td>学生姓名</td>
<td><input type=text maxlength=20 name="xs_name" value=""></td></tr>
</table>
代码如下:
<script language="javascript">
function getval(){
$.getjson("select.php",{sf_id:$("#sf_id").val()},function(json){
var ds_id = $("#ds_id");
$("option",ds_id).remove(); //清空原有的选项,也可使用 ds_id.empty();
$.each(json,function(index,array){
var option = "<option value='"+array['ds_id']+"'>"+array['ds_name']+"</option>";
ds_id.append(option);
});
});
}
//下面是页面加载时自动执行一次getval()函数
$().ready(function(){
getval();
$("#sf_id").change(function(){//省份部分有变动时,执行getval()函数
getval();
});
});
</script>
. 代码如下:
$sf_id = $_get["sf_id"];
if(isset($sf_id)){
$q=mysql_query("select * from dishi where sf_id = $sf_id");
while($row=mysql_fetch_array($q)){
$select[] = array("ds_id"=>$row['ds_id'],"ds_name"=>urlencode($row['ds_name']));
}
echo urldecode(json_encode($select));
}
代码如下:
<select name="ds_id" id="ds_id" title="选择地市">
<?php if( isset($_get['ds_id']) ){//返回要编辑的学生所属的地市
$sql="select * from dishi where ds_id=".$ds_id;
$resultds=mysql_query($sql,$conn);
while($listds=mysql_fetch_array($resultds)){ ?>
<option value="<?php echo $listds['ds_id'] ?>" <?php if( $listds['ds_id']==$ds_id ){ echo 'selected="selected"'; } ?> name="ds_id"><?php echo $listds['ds_name'] ?></option>
<?php } ?>
<?php } ?>
</select>
代码如下:
$().ready(function(){
//当$ds_id不为空,表示加载修改状态的表单,此时就不能在页面加载时立即调用getval()函数,以避免无法显示要修改的账目所在的收支分类
<?php if( empty($ds_id) ){ ?>//当$ds_id为空,表示加载添加表单,此时要在页面加载时立即调用getval()函数,以显示当前收支类型的子分类
getval();
<?php } ?>
$("#sf_id").change(function(){
getval();
});
});
如对本文有疑问, 点击进行留言回复!!
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
selenium + ajax抓取英雄联盟全部英雄的详细信息及多线程保存全部皮肤图片到本地
网友评论