为什么json返回数据在ajax成功方法中显示[](第三个括号)?

时间:2016-07-04 05:40:16

标签: javascript jquery json ajax

我正在使用jQuery / Ajax方法验证表单。

Bellow是我的jQuery代码,我正在传递json数据类型。但是在ajax success方法中,它会返回第三个braket 的所有数据,例如: [我的返回数据]

jQuery代码:

$("#filter_c_n").change(function() {    
    var data = $("#filter_c_n").val();
    $.ajax({
        url : 'search_c_n.php',
        method : 'POST',        
        data : {
            key : data  
        },
        datatype : 'json',
        success : function(data) {
            $("#filter_c_n_result").html(data);
        }
    });             
});

这是我的php文件,其中包含以下代码:

<?php
ob_start();
require_once("corefile.php");
user_login_check();
timeout();

$data =  array();
$key =  inputvalid($_POST['key']);
$data['key'] = $key;
echo json_encode($data);
?>

显示的内容如下:

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试以下

$("#filter_c_n_result").html(data.key);

如果要返回消息,请尝试以下操作:

$data['key'] = "Your data has been successfully submited";
echo json_encode($data);
?>

答案 1 :(得分:0)

如果您只想要字符串,而不将其包裹在对象中,请使用

echo json_encode($key);

不需要$data数组。

但是,返回关联数组可以实现更灵活的编码,因为您可以返回多个项目。例如,您可以包含status密钥,以便客户端可以检查请求是否成功。根据您返回数据的方式,您只需更改Javascript代码即可:

$("#filter_c_n_result").html(data.key);