Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有条件地解析返回到ajax调用的数据_Javascript_Php_Json_Ajax - Fatal编程技术网

Javascript 有条件地解析返回到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); 但是当我有一种不同类型的数据不想解析时,我该怎么做呢 因为解析它

我正在尝试从php将关联数组返回到ajax成功方法 我现在做的是这样的

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