AJAX используется для обновления страницы сбой - PullRequest
0 голосов
/ 03 марта 2011

Я использую следующий ajax для обновления информации на странице и повторной отправки страницы в базу данных.Сценарий каждый раз останавливается при остановке на параметре Error.Кто-нибудь может увидеть, где я ошибся.

AJAX -

function bookingdetails() {
    var date = <?php the_time('Y-m-d');?>;
    var airport = $('#FLTairport').val();
    var number = $('#FLTnumber').val();
    var time = $('#FLTtime').val();

    var dataString = 'date=' + date + '&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="40" height="30"/>');
        },
        error: function() {
            $('#airloader').html('Failed to update booking, try again');
        },
        dataType:'json',
        success: function(data) {
            $('#date').val(data.date);
            $('#FLTnumber').val(data.FLTnumber);
            $('#airloader').val(data.FLTnumber);
            $('#FLTairport').val(data.FLTairport);
            $('#FLTdate').val(data.FLTdate);
            $('#FLTtime').val(data.FLTtime);
        }


    });
}

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['date'],
        );
    $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');
$date = get_the_time('Y-m-d');
$FLTairport = $_POST['airport'];
$FLTnumber = $_POST['number'];
$FLTtime = $_POST['time'];

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

Есть идеи?

Чудесный

Ответы [ 2 ]

0 голосов
/ 03 марта 2011

Документация jQuery показывает 3 аргумента, которые можно использовать при обратном вызове ошибки, что может быть очень полезно при отладке вашей ошибки.

Из документов

enter image description here

так что, помня об этом, попробуйте изменить свой обратный вызов ошибки, например ...

error: function(xhr,ts,et) {
    $('#airloader').html('Failed to update booking.');
    $('#airloader').append('Error Text - '+ts);
},

и вы должны увидеть конкретную ошибку, которая должна указать вам правильный путь для ее исправления.

0 голосов
/ 03 марта 2011

Можете ли вы увидеть, что отправляет ваш php-скрипт?Я бы порекомендовал использовать firebug в firefox, чтобы точно увидеть, что возвращается к вашему javascript.Я не вижу, где он выводит параметр успеха для вашего JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...