SL_Shuai 2020-09-17 17:54 采纳率: 48.1%
浏览 196

Ajax取得数据库的json值,想通过id获取对应信息,但是都默认获取第二条的全部数据了

php:

<?PHP
    header("Content-Type: text/html; charset=utf-8");

    include('conn.php');//链接数据库

    $sql = 'select * from article where id';
    $res = mysqli_query($conn,$sql);
    $data = array();
    $arr['count']=mysqli_num_rows($res);
    while ($row = mysqli_fetch_array($res,MYSQLI_ASSOC)){
        $arr['data'][] = $row;
    }
    echo json_encode($arr);
?>

ajax:

//编辑的id获取数据库数据
$(document).ready(function(){
    function getUrl(name){
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg);  //匹配目标参数
        if (r != null) return unescape(r[2]);
        return null; //返回参数值
    }
    var id = getUrl('edit_id');
    console.log('id:' + id);
    $.ajax({
        url : "./php/edit.php",//后台请求的数据,用的是PHP
        type : "post",//请求方式
        data : {edit_id:id},
        async : false,//是否异步请求
        success : function(data) {
            var res = JSON.parse(data);
            for(let i=0;i<res.count;i++){
                var art_name = res.data[i].article_name;
                console.log(art_name);
                $("#art_name").val(art_name);
            }
        },
    })
})

前端console.log输出:

id:8

测试1

测试2

前端图:

图片说明

图片说明

对两个div获取数据库内容进行测试,想通过编辑对应id获取相对应的内容,我用for循环获取到的两个article_name,分别是测试1和测试2,并不是id:8对应的单独测试1,而且val出来的内容是测试2,怎么能准确的获取对应的内容?

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-09-17 23:40
    关注

    $sql = 'select * from article where id ='.你要的id ;
    你那么写,自然返回所有的数据了

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办