反思:

国产总是不尽人意,但是要支持国产。

ThinkPHP的6接收ajax的post数据,存在一个bug。即ajax传递的json数据,在thinkphp后端解析出来后,并非直接的json格式。

描述:

三级联动,此处不赘述如何实现。以省市县为例,当点击省的下拉菜单时,我们设置监听函数:

  layui.use(['form','cjgl'], function(){
var config = {
s1: 'xunliandui_id',
s2: 'xunlianying_id',
s3: 'xunlianlian_id',
v1: null,//默认的训练队id
v2: null,//默认的训练营id
v3: null,//默认的训练连id
}; var form = layui.form;
form.on('select(' + config.s1 + ')', function(data){
cityEvent(data);
});
function cityEvent(data) {
// alert('yes');
var $ = layui.jquery;
var $form = $('form');
$form.find('select[name=' + config.s2 + ']').html("");
// alert('no');
var myjson = JSON.stringify({parent_id:data.value});
// $.post("/system/school/xiajidanwei",myjson,function(result){
//
// },'JSON'); $.ajax({
url:"/system/school/xiajidanwei",//查询下级子单位
type:"post",
data:myjson,
dataType:'json',
success:function(result){
if(result.code == 0)
{
alert('xxx');
$.each(result.data, function(index,item){
console.log(item);
});
}else{
layer.msg(result.msg);
}
},
error:function(xhr,status,error) {
layer.msg('数据处理错误',{
icon: 2,
time: 2000 //2秒关闭(如果不配置,默认是3秒)
});
}
});
}
});

上述代码中,使用的是layui的jquery,无论是$.post还是$.ajax,其功能同。

当点击下拉菜单进行选择后,会执行js的cityEvent函数。

我们构造json字符串,即myjson。

但是,thinkphp后端利用$_POST接收的内容为:

因此,我们的后端需要特殊处理:

    public function ajaxData2()
{
// 获取参数
$a=array();
$a[0]=1000;
$src = $this->request
->only([
'parent_id' => ''
],'POST');
// 实例化
// $parent_id=$_POST["parent_id"];
foreach($_POST as $key=>$value){
$key=json_decode($key);
$parent_id=$key->{"parent_id"};
if($parent_id){
break;
}
} $sch = new sch;
$data = $sch->where('status',1)->where('parent_id',$parent_id)->select();
$data = reSetObject($data, $src); return json($data);
}

利用foreach取出$_POST的索引值,然后转化为json,再取出parent_id中的数据。

结论:

jquery.ajax以json传递的数据,在thinkphp6的后端,变成了数组的索引。而非json数据。

国产的库和框架,需要加油啊。

THINKPHP_(5)_THINKPHP6接收ajax下拉菜单提交的数据,存在的bug的更多相关文章

  1. IOS 下拉菜单

    由于之前曾经用到过下拉菜单,所以现在花一些时间回过头来细细整理了一下,逐步完善这个下拉菜单,并提供一些比较基本的功能,以便日后如果有需要的话可以进行复用,并提供给需要的人参考.下拉菜单同样分为数据源和 ...

  2. java poi excel操作 下拉菜单 及数据有效性

    1 private InputStream updateTemplateStyleHSSF(InputStream inputStream,CsCustCon csCustCon) throws IO ...

  3. js 联动下拉菜单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. php+ajax的三级联动下拉菜单

    封装一个三级联动,就可以在任何页面进行引用了 先写个页面引用一下这个js <head> <meta http-equiv="Content-Type" conte ...

  5. ajax三级联动下拉菜单

    ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可: 来找一张表: 实现: 中国地域的三级联动:省.市.区: 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过 ...

  6. 在AJAX里 使用【 XML 】 返回数据类型 实现简单的下拉菜单数据

    在AJAX里 使用XML返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...

  7. 在AJAX里 使用【 JSON 】 返回数据类型 实现简单的下拉菜单数据

    在AJAX里 使用JSON返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  8. 2016/4/5 Ajax ①用户名 密码 登陆 注册 ② 判断用户名是否已存在 ③点击按钮出现民族选项下拉菜单 ④DBDA类 加入Ajaxquery方法 数组变字符串 字符串拆分

    ①登陆   注册    查表匹配    0405Ajax.php   ②判断用户名是否存在 <!DOCTYPE html> <html lang="en"> ...

  9. 【easyui-combobox】下拉菜单自动补全功能,Ajax获取远程数据源

    这个是针对easyUI的下拉菜单使用的,Ajax获取远程数据源 HTML 页面 <input id="uname" name="uname" class= ...

随机推荐

  1. 1443. Minimum Time to Collect All Apples in a Tree

    Given an undirected tree consisting of n vertices numbered from 0 to n-1, which has some apples in t ...

  2. 手动脱Mole Box V2.6.5壳实战

    作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,之前也碰过该种壳但是这个程序似乎要复杂一点. 首先对加壳程序进行侦壳处理. Exeinfo ...

  3. AppScan扫描器的用法

    目录 AppScan 软件功能 建立一次基础的扫描 AppScan AppScan是一款非常好用且功能强大的Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界,AppS ...

  4. Windows核心编程笔记之内核对象

    0x01 子进程继承父进程内核对象句柄 父进程 #include <Windows.h> #include <iostream> #include <strsafe.h& ...

  5. 寻找OEP

    1.使用ESP定律 OD载入后,F8一次,在寄存器窗口的ESP的内容上(如0012FFA4)右键:"在数据窗口中跟随",到内存数据窗口,将内存数据窗口以HEX数据形式显示,在刚才的 ...

  6. C++基于文件流和armadillo读取mnist

    发现网上大把都是用python读取mnist的,用C++大都是用opencv读取的,但我不怎么用opencv,因此自己摸索了个使用文件流读取mnist的方法,armadillo仅作为储存矩阵的一种方式 ...

  7. 【python】Leetcode每日一题-位1的个数

    [python]Leetcode每日一题-位1的个数 [题目描述] 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 示例1 ...

  8. Docker 搭建一个多端同步网盘-Nextcloud

    hub 官网

  9. jquery中定义数组并给数组赋值后转为json格式为[]问题的解决

    一.问题描述:jquery定义一个空数组,并赋值,结果转为json格式后打印值为空 我原本是这样写的,但是show_data值一直为[] var export_data = [];export_dat ...

  10. Asp.NetCore 自定义中间件

    这节演示一下自定义中间件,第一节我们讲到,中间件的处理流程就像一个俄罗斯套娃,那这种俄罗斯套娃型的流程内部是如何实现的呢,下面请看代码​. ​第一种写法是直接写在Configure方法中的,使用app ...