javascript - 添加多条数据组织为一个对象并传给php,php如何接收参数并解析为正常数据并插入到表中?

 lily-SweetDream_828 发布于 2022-11-27 22:35

做了个增删改查的表,新增的数据有多条,我现在都是在URL中以?后加参数的形式传给php,然后,php用$_GET['']接收传过来的参数。这是可以实现新增数据的方法,我想问的是,如果新增数据特别多的情况下,php怎么接收解析传过来的参数呢?
下面是我的代码?
php:

//新增方法functionadd_row(){/*获取从客户端传过来的数据*/$userName=$_GET['user_name'];$userAge=$_GET['user_age'];$userSex=$_GET['user_sex'];$sql="INSERTINTOt_users(user_name,user_age,user_sex)VALUES('$userName','$userAge','$userSex')";if(query_sql($sql)){echo"ok!";}else{echo"新增成功!";}}functionquery_sql(){$mysqli=newmysqli("127.0.0.1","root","root","crud");$sqls=func_get_args();foreach($sqlsas$s){$query=$mysqli->query($s);}$mysqli->close();return$query;}

js:

$(function(){$('#save').click(function(){addData();});});functionaddData(){varuserName=$('#userName').val();varuserAge=$("#userAge").val();varuserSex=$('#user-sex').val()=='0'?'男':'女';varaddUrl="./php/data.php?action=add_row&user_name="+userName+"&user_age="+userAge+"&user_sex="+userSex;$.ajax({type:"post",url:addUrl,dataType:'json',contentType:'application/json;charset=utf-8',success:function(data){console.log("success");},error:function(data){console.log("data");//添加成功后隐蒧modal框并重新加载页面setTimeout(function(){$('#exampleModal').modal('hide');},500);setTimeout(function(){//新增成功后,重新加载数据searchData();},700);}});}

上面写的可能不太明白,我想要表达的意思是,如果php的代码不变,变的仅是js新增这个方法中的数据组织,如果有多条数据需要新增,我把这多条数据组织为一个对象并把这个对象给解析为一个字符串传给php。那么这个php如何解析数据呢?

functionaddData(){varuserName=$('#userName').val();varuserAge=$("#userAge").val();varuserSex=$('#user-sex').val()=='0'?'男':'女';/*varaddUrl="./php/data.php?action=add_row&user_name="+userName+"&user_age="+userAge+"&user_sex="+userSex;*/varaddUrl="./php/data.php?action=add_row";varaddData={'user_name':userName,'user_age':userAge,'user_sex':userSex};varjsonData=JSON.stringify(addData);$.ajax({type:"post",url:addUrl,data:jsonData,//传给phpdataType:'json',contentType:'application/json;charset=utf-8',success:function(data){console.log("success");},error:function(data){console.log("data");//添加成功后隐蒧modal框并重新加载页面setTimeout(function(){$('#exampleModal').modal('hide');},500);setTimeout(function(){searchData();},700);}});}

求大侠解答一下,非常感谢!

7 个回答
  • 新增操作做好用POST方法,ajax发送json(data:{a:'',b:'',c:''})数据,php接收到后jsondecode($_POST['data'])

    2022-11-27 23:07 回答
  • 将所有的参数放在一个json数字里面传递到后台:{'username':xxx,'age':xxx},按照你代码的注释和逻辑那些代码应该写在success里面而不是error里面

    2022-11-27 23:07 回答
  • 我听不懂你说什么,ajax接收完,就直接返回了,而你默认是dataType:'json',也就是说php里面返回的只要不是json格式的数据,就会报错。你自己看下你上面//echo"新增成功!";这个就直接让你ajax报错了。

    if(query_sql($sql)){//echo"ok!";$r['code']=0;$r['msg']='ok!';}else{//echo"新增成功!";$r['code']=1;$r['msg']='新增成功!';}exit(json_encode($r));
    2022-11-27 23:07 回答
  • success的条件是(xmlHttp.readyState==4)&&(xmlHttp.status==200)
    你看看你请求的地址返回的状态码是200吗?

    如果参数很多的话你可以直接将$_GET赋值给一个变量就行了,因为$_GET就是一个数组。

    2022-11-27 23:07 回答
  • 接收$_GET数组然后遍历

    2022-11-27 23:07 回答
  • POST

    2022-11-27 23:07 回答
  • 1.ajax提交方式是用teyp:"post",但php接收的参数是$_GET
    2.ajax接收的数据格式dataType:'json',但php返回的结果是text。
    3.ajax的请求内容格式contentType:'application/json;charset=utf-8',请求的数据应当为json字符串,后台如果用php接收,可以用$data=file_get_contents("php://input");json_decode($data,true),即为请求参数.(HttpRequest中常见的四种ContentType(转))
    4.sql要做防注入处理

    2022-11-27 23:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有