抓取json对象数据

时间:2015-06-26 16:37:50

标签: php jquery ajax json

我尝试创建一个AJAX表单,在正确填写字段时显示错误或成功消息。这是我的代码:

$('#name').keyup(function() {
    var name = $('#name').val();
    $.post('core/name_processing.php', { name: name }, function(data) {
        if (data.name === 'nodata') {
            $('#name_check').html(' ');
            $('.input_feedback').fadeOut('fast');
            $('.input_success').fadeOut('fast');
        } else if (data.name === 'success') {
            $('#name_check').html(data.name);
            $('.input_feedback').fadeOut('fast');
            $('.input_success').fadeIn('fast');
        } else {
            $('#name_check').html(data.name);
            $('.input_feedback').fadeIn('fast');
        }
    });
});

' #name' 是输入字段。

这是PHP:

<?php

$result = array();

if (isSet($_POST['name'])) {
    if (empty($_POST['name'])) {
        $result['name'] = 'nodata';
    } else {
        $name = $_POST['name'];
        if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
            $result['name'] = "Only letters and white space allowed"; 
        } else if (strlen($name) > 10) {
            $result['name'] = 'success';
        } else {
            $result['name'] = strlen($name).' characters';
        }
    }
}

echo json_encode($result);

?>

当我没有使用数组时,代码工作正常,但由于我想添加更多输入字段,我需要返回数组中的数据。问题似乎是 data.name 不是有效值,它不会按原样获取数据。我该如何解决这个问题?

数据会返回{"name":"... characters"}{"name":"nodata"}{"name":"success"},这似乎是正确的。

1 个答案:

答案 0 :(得分:1)

您失去了功能属性和数据类型:

$.post('core/name_processing.php', { name: name }, function(data) {
    ....
}, 'json');

有关信息,请参阅http://api.jquery.com/jquery.post/