AJAX功能齐全,但仍显示错误消息

时间:2011-03-09 11:34:01

标签: php ajax

在我编写的3个不同的AJAX脚本中,即使ajax正在处理更新的PHP文件并且执行了所有成功语句,也会显示错误消息。因为我前几天才发现了ajax。我的脚本一定有问题。也许有人能看出我哪里出错了。

AJAX:

function bookingdetails() {
    var actdate = $('#actdate').val();
    var airport = $('#FLTairport').val();
    var number = $('#FLTnumber').val();
    var time = $('#FLTtime').val();

    var dataString = 'actdate=' + actdate + '&airport=' + airport + '&number=' + number + '&time=' + time;

    $.ajax({
            type: 'POST',
             url: '<?php echo $thisposturl;?>?update',
             data: dataString,
             beforeSend: function() {
                 $('#airloader').html('<img id="BKloader" src="http://www.divethegap.com/update/z-images/structure/icons/blockloader.gif" alt="" width="30" height="30"/>');
                 },
                  error: function() {
                 $('#airloader').html('arse up');
                 },
                 dataType:'json',
             success: function(data) {
     $('#actdate').val(data.date);
     $('#FLTnumber').val(data.FLTnumber);
     $('#airloader').html('marvellous');
     $('#FLTairport').val(data.FLTairport);
     $('#FLTdate').val(data.FLTdate);
     $('#FLTtime').val(data.FLTtime);
     $('#datediv').load('<?php echo $thisposturl;?> #datediv');
}


        });

}

PHP :(不要担心插入帖子位)

<?php

   function __update_post_meta( $post_id, $field_name, $value = '' )
{
    if ( empty( $value ) OR ! $value )
    {
        delete_post_meta( $post_id, $field_name );
    }
    elseif ( ! get_post_meta( $post_id, $field_name ) )
    {
        add_post_meta( $post_id, $field_name, $value );
    }
    else
    {
        update_post_meta( $post_id, $field_name, $value );
    }
}

if ( is_user_logged_in() ) {
$my_post = array(
    'ID' => get_the_ID(),
    'post_date' => $_POST['actdate'],
);
 $the_post_id = wp_update_post( $my_post );

__update_post_meta( $the_post_id, 'FLTairport', $_POST['airport'] );
__update_post_meta( $the_post_id, 'FLTnumber', $_POST['number'] );
__update_post_meta( $the_post_id, 'FLTtime', $_POST['time'] );
}

$FLTdate = get_the_time('d/m/Y');
$actdate = get_the_time('Y-m-d');
$FLTairport = $_POST['airport'];
$FLTnumber = $_POST['number'];
$FLTtime = $_POST['time'];

echo json_encode( array('FLTdate'=>$FLTdate, 'actdate'=>$actdate, 'FLTairport'=>$FLTairport, 'FLTnumber'=>$FLTnumber, 'FLTtime'=>$FLTtime));
?>

结果所有值都已更新,但仍在#airloader中显示“ass up”。这是我可以提供的一个例子,它是我编写的4个ajax脚本中的3个。

有什么想法吗?

奇妙

1 个答案:

答案 0 :(得分:0)

您是否检查过错误函数的第二个参数?

请参阅:http://api.jquery.com/jQuery.ajax/

错误(jqXHR,textStatus,errorThrown) ...,描述发生的错误类型的字符串和可选的异常对象(如果发生)。第二个参数的可能值(除了null)是“timeout”,“error”,“abort”和“parsererror”。 ...