php登录之后才用的三级页面,php如何在页面中制作三级联动的选项卡

我们在网页中经常会见到多重的选项卡,当一个选项内容发送改变时,另外的选项卡内容也相应改变,例如在某个地址查询的选项中,当你选择“山东省”的时候,那么“市”,“区”的选项也会相应发生变化,本篇将说明如何制作这样的选项卡。

0271349485647be89a7af124fc2aa831.png

以地址选项卡为例,数据库方面,我们需要一张表,表中包含的字段为id,name(地址名称),parent_id(父级地址的id),主要思路为:根据id来选择打印至html页面的select选项卡中的option的值,而当option的值发送变化时,同时改变其他option的值,他们之间的对应关系则根据父级id来实现同步(即:parent_id)。

获取数据的方法跟之前文章中方法相同,php提出数据转成字符串返回到ajax,再用一个function把字符串转成数组。

我们需要两个页面,一个负责显示的HTML页面和一个后台处理的php页面index.php

HTML页面(包含js):

无标题文档

//引用jquery

//通过ajax获取数据

var tabData="";

$.ajax({

async:false,

url:‘index.php‘,

data:{},

type:‘get‘,

dataType:‘text‘,

success:function(data){

//调用方法:字符串转数组 同时传值data

tabData=data;

}

});

var brr = [];

window.onload = function(){

var sheng = document.getElementById("sheng");

var shi = document.getElementById("shi");

var qu = document.getElementById("qu");

/*把字符串转成数组*/

var arr = tabData.split(‘^‘);

for(var i in arr){

brr.push(arr[i].split(‘,‘));

}

//先调用一遍方法,此时省内选项为“请选择”

changehtml(0,sheng);

//当省改变时调用方法

sheng.onchange = function(){

changehtml(this.value,shi);

}

//当市改变时调用方法

shi.onchange = function(){

changehtml(this.value,qu);

}

}

//方法:   此处应用传参,code是父级id,即parent_id,obj是所对应选项卡的id,即:“sheng”,“shi”,“qu”

function changehtml(code,obj,){

var str = ‘请选择‘;

for(var i = 0; i

if(brr[i][2] == code){

str += ""+brr[i][1]+"";

}

}

obj.innerHTML = str;

}

省:

市:

区:

php页面:

/*连接数据库*/

$db= new MySQLi(‘localhost‘,‘root‘,‘root‘,‘database‘);

!mysqli_connect_error() or die(‘连接失败‘);

$db->query(‘set names utf8‘);

//提取全部数据生成数组

$sql = "select * from table ";

$res = $db->query($sql);

$arr = array();

//取需要的关键字段生成关系数组

while($row = $res->fetch_assoc()){

$arr[] = array($row[‘id‘],$row[‘name‘],$row[‘parent_id‘]);

}

//转成字符串

$str = ‘‘;

foreach($arr as $v){

//用一个^把数据隔开

$str .= implode($v,‘,‘)."^";

}

/*删除最后一个向上箭头^*/

$str = substr($str,0,strlen($str)-1);

//输出

echo $str;

?>

原文:https://www.cnblogs.com/xwenbin/p/10224400.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值