使用ajax发布json数据时添加的方括号

时间:2016-01-03 10:26:36

标签: php jquery ajax

当我尝试使用ajax发布数据时,它会在值中添加方括号。 我调试了超过1天,但我没有。每件事都很好,但在数据库中它是用括号存储 例如:我发布的价值:jhon     在数据库中:[u'jhon']

这是我的示例代码

    function SignUp() {

                if($("#firstname").val()=="") {
                    alert("All fields are complusory.");
                    return;
                }
                if($("#lastname").val()=="") {
                    alert("All fields are complusory.");
                    return;
                }if($("#emailid").val()=="") {
                alert("All fields are complusory.");
                return;
            }
                if($("#mobileno").val()=="") {
                    alert("All fields are complusory.");
                    return;
                }

                console.log("firstName:  " + $("#firstname").val() );

                var ajax_data = {};
                ajax_data["firstname"]=$("#firstname").val();
                ajax_data["lastname"]=$("#lastname").val();
                ajax_data["emailid"]=$("#emailid").val();
                ajax_data["mobileno"]=$("#mobileno").val();

                $.ajax({
                    type: "POST",
                    url: "signup.php",
                    data :  jQuery.param( ajax_data, true ),
                    traditional: true,
                    dataType: "json",
                    success: function(response) {
                        console.log("response from sign up " + response.status  + " " + response.message);
                         if (response.status == true) {
                             if (response.data.user_id != "-1") {
                             // SignIn($("#mobileno").val());
                             return;
                             }
                         }
                         else
                         alert(response.message);
                    },
                    error:function(){
                        alert("failed");
                    }
                });
            }

 signup.php
<?php
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );
require_once ("sessionstart.php");

    $service_url = 'http://52.77.213.61/kitchenvilla/v6/user/signup';
    $curl = curl_init ( $service_url );
    $curl_post_data = array (
            "first_name" => $_POST["firstname"],
            "last_name" => $_POST["lastname"],
            "email" => $_POST["emailid"],
            "mobile" => $_POST["mobileno"],
            "reg_id" => "xxxxx",
            "ref_code" => "xxxxx"
    );
    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true );
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS,$curl_post_data);
    $curl_response = curl_exec ( $curl );
    curl_close ( $curl );
    echo json_encode(( array ) json_decode ( $curl_response, true ));
    ?>

任何人都可以帮助我

2 个答案:

答案 0 :(得分:1)

请注意,您发送的是 JSON

$.ajax({
    ...
    url: "signup.php", 
    ...
    dataType: "json",
    ...

在服务器端( PHP ),您需要使用json_decode()函数解码您正在接收的 JSON 值。

答案 1 :(得分:1)

以下是一些&#34;提示和提示&#34;:
1)通过POST发送CURL请求时,会发送一个关联数组&quot; post_data&#39;应使用http_build_query函数进行编码:

...
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($curl_post_data));
...

2)json_decode作为第二个参数传递true已经返回一个数组,你不应该将它转换为数组两次:

echo json_encode( json_decode( $curl_response, true ) );