正在获取json对象数据


Grabbing json object data

我正在尝试创建一个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"}

您将丢失函数属性和数据类型:

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

请参阅http://api.jquery.com/jquery.post/以获取信息。