当我尝试使用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 ));
?>
任何人都可以帮助我
答案 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 ) );