星空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 R运行没有名称为"species"的插槽对于此对象类"SDMmodelCV"
  • ¥20 基于决策树的数字信号处理,2ask 2psk 2fsk的代码,检查下报错的原因
  • ¥20 python作业求过程
  • ¥15 wincc已组态的变量过多
  • ¥60 如图:直线与椭圆X轴平行,求直线与椭圆任意一点的相切坐标计算公式
  • ¥50 如何用python使用opencv里的cv::cudacodec::VideoWriter函数对视频进行GPU硬编码
  • ¥100 c#solidworks 二次开发 工程图自动标边线法兰 等折弯尺寸怎么标
  • ¥15 halcon DrawRegion 提示错误
  • ¥15 FastAPI Uvicorn启动显示404
  • ¥15 centos7.9脚本,怎么排除特定的访问记录