【发布时间】:2017-05-08 10:21:33
【问题描述】:
当我尝试 json_decode json.stringify 数据时它返回 NULL 所以使用 **json_last_error 来了解错误并返回以下错误消息
语法错误,JSON 格式错误
任何人都可以验证我包含在 javascript 函数中的 ajax 代码并发现错误。
下面是脚本代码
<script>
function callphp(){
var dataa = {};
dataa.dateipone = jQuery("#dateInputone").val();
dataa.dateiptwo = jQuery("#dateInputtwo").val();
dataa.ino = jQuery("#ino").val();
dataa.submit = "submit";
alert("Hello")
$.ajax({
url : "six-cuf.php",
type: 'POST',
data :JSON.stringify(dataa),
contentType : "application/json; charset=utf-8",
success:function(data)
{
if(data){
alert(data);
//console.log("Data from Server"+JSON.stringify(data));
}
else{
console.log("Data is empty");
}
},
error: function(xhr) {
alert('Error! Status = ' + xhr.status + " Message = " + xhr.statusText);
//console.log('Error! Status = ' + xhr.status + " Message = " + xhr.statusText);
}
});
}
下面是6-cuf.php
$data = json_decode($_POST['dataa']);
print_r($data);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
if(isset($_POST["dateipone"],$_POST["dateiptwo"],$_POST["ino"],$_POST["options"],$_POST["dateone"],$_POST["datetwo"],$_POST["submit"]))
{
//php code
}
在 dateipone,dateiptwo 和 dateone,datetwo...其中一对的值为空。
【问题讨论】:
-
你的
$_POST中肯定没有$_POST['dataa']。 -
@u_mulder...你是说 javascript 对象值没有发布到我的另一个 php 页面..??
-
print_r($_POST)看看你有什么 -
@u_mulder..它只是像这样打印一个空数组Array()。你能给我提供一个如何传递这些值的例子吗?我是 ajax 新手,不太了解……它会有所帮助……
标签: javascript php jquery json ajax