简体   繁体   English

如何使用jQuery的ajax方法将json数组发布到PHP?

[英]How to post json array to PHP using jQuery's ajax method?

I have a json array created by javascript and need to post it to a php file in order to save the data into the database. 我有一个用javascript创建的json数组,需要将其发布到php文件中才能将数据保存到数据库中。

var myArray = [{
                "picture":"picture1.jpg",
                "picture_comment":"some comment about picture1", 
                "pictureid":16, 
                "u0id":80, 
                "u1id":82,
                "u2id":78,
                "u3id":79,
                "u4id":81, 
                "param0": "60f3f",
                "param1":"48dd2",
                "param2":"4f2f7",
                "param3":"8d101",
                "param4":"5efcc",
                "active":false,
                "dutyid":1256,
                "t":0
               },
               {
                "picture":"picture2.jpg",
                "picture_comment":"some comment about picture2",
                "pictureid":160,
                "u0id":18,
                "u1id":48,
                "u2id":70,
                "u3id":95,
                "u4id":74,
                "param0": "1123f",
                "param1":"48d13",
                "param2":"595f7",
                "param3":"78ad8",
                "param4":"4efdc",
                "active":false,
                "dutyid":125,
                "t":4
               }
               //goes like this about more than 20 times.
       ;           

I have tried to post it using jQuery.ajax but I was not successful. 我尝试使用jQuery.ajax发布它,但未成功。

 $.ajax({
          type: "POST",
          url: "goDoMyWork.php",
          data: myArray,
                      dataType: "json",
          success: function(){

            alert("Done! You'll be redirecting now.");
            window.location.href = "/index.php";
        }
        ,
        error: function(jqXHR, textStatus, errorThrown)
        {
            alert("Fail!");
        }
    });

I have to insert some of the data into one table and some of them into another table. 我必须将一些数据插入一个表中,并将其中一些插入另一表中。

I have got the following error using: 我使用以下错误:

alert(jqXHR + '-' + textStatus + '-' + errorThrown);

[object Object]-parsererror-SyntaxError: JSON.parse: unexpected character [对象对象] -parsererror-SyntaxError:JSON.parse:意外字符

Try changing data: myArray to data: {mydata : myArray} . 尝试将data: myArray更改为data: {mydata : myArray} Passing your array directly causes jQuery to pass it in an odd format. 直接传递数组会导致jQuery以奇数格式传递它。 http://api.jquery.com/jQuery.param/ http://api.jquery.com/jQuery.param/

JSON.parse is the function that transforms text in json-format into a JavaScript object. JSON.parse是将json格式的文本转换为JavaScript对象的函数。 What you seem to be wanting to do is throw some data at the server, where the server will handle it further. 您似乎想要做的是在服务器上扔一些数据,服务器将在该数据上做进一步处理。

What you are actually doing is setting the dataType to json . 您实际上正在做的是将dataType设置为json In the documentation you can read that this is the data-type you are expecting to get back from the server. 文档 ,你可以阅读,这是你期望得到从服务器返回的数据类型。 jQuery will therefor throw the data it gets back from the server through JSON.parse , but apparently the data is not a well-formed json-string. 为此,jQuery将通过JSON.parse抛出从服务器返回的数据,但显然该数据不是格式正确的json字符串。 Removing the dataType from your request will fix this, as the data will most likely not be parsed. 从您的请求中删除dataType将解决此问题,因为数据很可能不会被解析。 Therefor, whatever gets returned will be in the form of a string. 因此,返回的任何内容都将是字符串形式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM