Javascript 有条件地解析返回到ajax调用的数据
我正在尝试从php将关联数组返回到ajax成功方法 我现在做的是这样的Javascript 有条件地解析返回到ajax调用的数据,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我正在尝试从php将关联数组返回到ajax成功方法 我现在做的是这样的 if(!empty($error)){ $rs = json_encode(array( 'TYPE' => '0', 'ERROR' => "<h5> Opps there was some error(s) </h5> " . $error )); print_r($rs); 但是当我有一种不同类型的数据不想解析时,我该怎么做呢 因为解析它
if(!empty($error)){
$rs = json_encode(array(
'TYPE' => '0',
'ERROR' => "<h5> Opps there was some error(s) </h5> " . $error
));
print_r($rs);
但是当我有一种不同类型的数据不想解析时,我该怎么做呢
因为解析它们会抛出一些未捕获的错误
我的数据类型是从mysql数据库中检索到的数据,如果我通过解析来获取这些数据
弹出错误:Uncaught SyntaxError:JSON.parse:JSON数据第1行第2列的JSON数据后出现意外的非空白字符
无需解析即可正常工作
以下是我的php mysql数据:
include 'connection.php';
$sql = "Select * from user";
if ($result = mysqli_query($link, $sql)) {
while ($row = mysqli_fetch_assoc($result)) {
$output [] = $row["id"] .":". $row["name"];
}
}
mysqli_close($link);
header('Content-Type: application/json');
print_r( json_encode($output));
我想从php返回的是一个关联数组
有两个或两个以上的键
array( 'error' => 'there was some errors '.$error , 'type' => '0' );
我希望能够在我的javascript中访问它们,并输入我要返回的数据
并有条件地解析它们,或者不解析类似的东西:
$.ajax({
url: url,
method: "POST",
data: {name,age,id,submit},
success: function (data) {
var rs = JSON.parse(data);
if (rs['TYPE'] == '0') {
$('.alert').html(rs['ERROR']).show("slow");
} else {
console.log(rs);
}
},
fail: function (jqXHR, textStatus) {
alert("Request failed: " + textStatus);
},
error: function (xhr, status, error) {
alert("error" + error)
}
});
success : function(data) {
if(data['TYPE'] == '0'){ JSON.parse(data) //rest of my code } else{// my rest of code }
}
但我似乎无法在解析返回的数据之前通过键访问它们
很抱歉,我还是一名初学者,非常感谢您的帮助,提前感谢。仅作为调试工具。在脚本的正常过程中使用它输出JSON是不合适的。它添加了额外的格式,因此会使JSON无效,并且无法被JavaScript代码解析
按照从PHP输出的标准方式,只需使用echo
。仅用作调试工具。在脚本的正常过程中使用它输出JSON是不合适的。它添加了额外的格式,因此会使JSON无效,并且无法被JavaScript代码解析
按照PHP输出的标准方式,只需使用
echo
。我确实使用了echo,但当我返回数组时,echo抛出异常,但它可以与print\r一起正常工作?我弄明白了,我只需要将返回的数组签名更改为如下内容:如果(!empty($error)){//此签名非常有效,解析也非常有效$rs[]=['TYPE'=>'0','error'=>“出现了一些错误,”;$error];echo json_encode($rs)}。ei实际上做了echo,但是当我返回数组时,echo抛出异常,但是它可以与print\u r一起正常工作?我明白了,我只需要将返回的数组签名更改为如下内容:if(!empty($error)){//此签名非常有效,解析也非常有效$rs[]=['TYPE'=>'0','error'=>“有一些错误,
”;$error];echo json_encode($rs);}e