thinkPHP5—ajax的无限父级操作

今天学习了基于thinkphp5的ajax无限父级的操作

1.相应文件图:

2.数据库表名lsy_topic

相应代码的实现:

1.视图:app/index/view/user/topic.html

<div>
	<!--一级-->
	<select id="pname" class="pure-input-s" name="pname" onchange="topic_ajax();" >
		<option value=''>请选择</option>
			{volist name='pc' id='value'}
				<option value='{$value.id}'>{$value.name}</option>
			{/volist}
	</select>
	<!--二级-->
	<select id="poname" class="pure-input-s" name="poname" onchange="topic_ajaxx();">
	</select>
	<!--三级-->
	<select id="ptname" class="pure-input-s">
	</select>
</div>

<script>
function topic_ajax(){
    var name=$('#pname').val();
    $.get({url:('../topic/topic_ajax.html')},{"pname":name},function(data){
        data1= eval("("+data+")");//处理变成json格式
        //console.log(data);非json格式
        //console.log(data1);json格式
        $("#poname").html('<option value="">请选择</option>');//清空数据,$("#poname")获取id="poname"的标签,html(“”)以html的方式写入内容
        $.each(data1,function(i,val){//循环i次输出数据
        $("#poname").append("<option value="+val.id+">"+val.name+"</option>");//$("#dl")获取id="d1"的标签,在里面追加内容

        });
    });
    /*$.post("{:url('TopicAjax/topic_ajax')}",{"testname":testname},function (data) {
     //console.log(res);
     alert('ajax返回来的值是:'+data);
     });*/
}
</script>

<script>
function topic_ajaxx(){
    var name=$('#poname').val();//获取值
    //alert("1");
    $.get({url:('../topic/topic_ajaxx.html')},{"poname":name},function(data){
        data2=eval("("+data+")");
        $("#ptname").html('');
        $.each(data2,function(i,val){
            $("#ptname").append("<option value="+val.id+">"+val.name+"</option>");
        });
    });
}
</script>

2.控制器:app/index/controller/topic.php

<?php
namespace app\index\Controller;
use think\Controller;
use think\Db;

class Topic extends Controller{
    public function skip_topic(){
        $topic= Db::table('lsy_topic')->query("select * from lsy_topic ");
        $po = Db::table('lsy_topic')->query("select * from lsy_topic WHERE pid=0");
        //var_dump($topic); exit();//可以查看是否成功获取数据

        $this->assign('topic', $topic);
        $this->assign('pc', $po);


        return $this->fetch('user/topic');
    }
    public function topic_ajax(){
        if(request()->isAjax()){
            $name=input('pname');//获取表单数据
            $pt = Db::table('lsy_topic')->query("select * from lsy_topic WHERE pid=$name");
           // $this->assign('st', $pt);
            header('Content-Type:text/html; charset=utf-8');
            exit(json_encode($pt));
        }

    }
    public function topic_ajaxx(){
        if(request()->isAjax()){
            $name=input('poname');
            $sont=Db::table('lsy_topic')->query("select * from lsy_topic WHERE pid=$name");
            //$this->assign('sont',$sont);
            header('Content-type:text/html;charset=utf-8');
            exit(json_encode($sont));
//            return $name;,
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值