星空2020 2023-04-08 13:27 采纳率: 64.1%
浏览 45
已结题

layui table中获取行的部分数据并ajax post传递给php后台

layui table中获取行的部分数据并ajax post传递给php后台查询,目前下述传递参数失败:


        //监听行工具事件 ,删除一行,修改数据 
      table.on('tool(test1)', function (obj) {
        var data = obj.data;
        if (obj.event === 'edit') {
          openedit(data);
        } else if(obj.event === "detail") {
                // 详情
                let name= data["name"]; //获取行中的姓名
                let timestamp = data["timestamp"]; //获取行中的时间
                $.ajax({
                    type: "post",
                    url: "./order_detail.php",//传值给php后台,失败
                    data: {"name": name,"timestamp": timestamp},  //传值给php后台,失败
          dataType:"json",
                    success: function (data) {
                        if (data) {
                            var data=data.data;
                            var layer = layui.layer;
                            layer.open({
                                type: 1,
                                content: $('#openProductBox'),
                                area: ['950px', '500px'], //宽高
                                success: function () {
                                    table.render({
                                        elem: '#openProductTable2'
                                        , height: 'FULL-1',
                                        url: "./order_detail.php",
                                        page: false //关闭分页
                                        ,  cols: [[ //表头
                                            {field: 'id',title: 'ID', sort: true}
                                            ,{field: 'name', title: '姓名'},
                                            ,{field: 'age', title: '年龄'},
                                            ,{field: 'address', title: '地址'},
                                        ]]
                                    });
                                    // layer.close(index)
                                }
                            }) 
                        } else {
                            alert("失败")
                        }
 
                    }
                }) 
            } 
      });

php后台


```php
<?php
//如果无返回空 

    $name= $_post['name'];
    $timestamp = $_post['timestamp'];
 
    
require './untils/pdo_connect_db.php';

$res = $pdo->query("SELECT * from table where name='$name' and addtime <='<span class="hljs-subst">$timestamp</span>' order by id desc limit 10")->fetchall(PDO::FETCH_ASSOC);
$num = count($pdo->query("SELECT * FROM table where name='$name' and addtime <='<span class="hljs-subst">$timestamp</span>' order by id desc limit 10")->fetchAll(PDO::FETCH_ASSOC));
  $json = json_encode(array(
    "code" => 0,
    "msg" => "",
    "count" =>  $num,
    "data" => $res
  ), JSON_UNESCAPED_UNICODE); //JSON_UNESCAPED_UNICODE注意不加会乱码
  echo $json; 

?>

```

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2023-04-08 19:23
    关注

    以下内容部分参考ChatGPT模型:


    问题可能出在ajax中传递的数据格式,应该使用JSON.stringify()将对象转换成JSON字符串再传递。修改代码如下:

    $.ajax({
        type: "post",
        url: "./order_detail.php",
        data: JSON.stringify({"name": name,"timestamp": timestamp}),
        dataType: "json",
        success: function (data) {
            // 省略部分代码
        }
    })
    

    另外,在PHP中的$_POST变量名应该使用全大写。修改代码如下:

    $name= $_POST['NAME'];
    $timestamp = $_POST['TIMESTAMP'];
    

    最后,注意SQL语句中的单引号和双引号的使用,应该使用一致的引号包裹字符串。修改代码如下:

    $res = $pdo->query("SELECT * from table where name='$name' and addtime <= '$timestamp' order by id desc limit 10")->fetchall(PDO::FETCH_ASSOC);
    $num = count($pdo->query("SELECT * FROM table where name='$name' and addtime <= '$timestamp' order by id desc limit 10")->fetchAll(PDO::FETCH_ASSOC));
    

    以上是我作为PHP、Layui、Ajax技术领域的专家给出的解决思路,希望对您有帮助。


    如果我的建议对您有帮助、请点击采纳、祝您生活愉快

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月9日
  • 已采纳回答 4月8日
  • 创建了问题 4月8日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵