2011-03-03 135 views
0

我正在使用以下ajax更新页面上的信息,然后将页面重新提交到数据库中。该脚本每次都在Error参数处停止失败。任何人都可以看到我出错的地方。用于更新页面失败的AJAX

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)); 
?> 

任何想法?

非凡

+0

为什么在网址的末尾添加'?update'? – jondavidjohn 2011-03-03 14:05:56

+0

这是PHP文件的位置,由另一个使用include函数引用页面的脚本确定 – 2011-03-03 14:13:17

回答

0

jQuery Documentation显示了3个可用于错误回调的参数,这可以在调试错误时非常有用。

从文档

enter image description here

这么一点,试着改变你的错误回调是这样的...

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

,你应该看到的具体错误,这应该放你在正确的道路上修复它。

0

你能看到你的php脚本发送了什么吗?我会建议在firefox中使用萤火虫,看看到底是什么回来消费你的JavaScript。我没有看到它为你的json输出一个成功参数。