2013-11-26 56 views
0

好吧,所以我想通過一個插件工作正常,但在這個JavaScript下面的Javascript將不會回到原始頁面在Wordpress中的AJAX調用被傳遞給下面的函數。我錯過了什麼?AJAX調用不顯示原始頁面或刷新它

// JavaScript Document 
jQuery(document).ready(function($) { 
// We'll pass this variable to the PHP function outofoffice_ajax_request 
id_numbers = new Array(); 
// This does the ajax request 
$.ajax({ 
    type: "get",   
    url: myAjax.ajaxurl, 
    dataType : "json", 
    data: {   
     action:"outofoffice_ajax_request", 
     outofoffice_value : outofoffice_value, 
     aid : aid 
    }, 
    success:function(response){ 
     // This outputs the result of the ajax request 
     id_numbers = response; 
     $("#outofoffice").html(response); 
        window.location.reload(true); 
    }  
    .error(function() { 
alert("Your out of office settings could not be updated."); 
})  
}) 
}); 

返回「value is set!」。從這個功能;

function outofoffice_ajax_request() { 
// The $_REQUEST contains all the data sent via ajax 
if (isset($_REQUEST['outofoffice_value'])) { 
    $outofoffice = $_REQUEST['outofoffice_value']; 
    $aid = $_REQUEST['aid']; 
    if($_REQUEST['outofoffice_value']=='true'){ 
    update_user_meta($aid, 'si_office_status', 'false'); 
    } 
    else{ 
    update_user_meta($aid, 'si_office_status', 'true');  
    } 
    echo "value is set!"; 
    die(); 
} 
die(); 
} 
+0

不太清楚你是什麼意思「但下面的JavaScript不會回到原來的頁面」 – Ramesh

+0

同意@Ramesh。 Ajax不是假設重定向或轉到另一個頁面 - 創建它的原因正好相反 - 保持當前頁面不刷新等等。 –

+0

啊,是的,我實際上不希望它離開原始頁面! :)也許這是一個WordPress的事情...但我試圖有一個鏈接點擊更新用戶的元數據,而不離開頁面... –

回答

1

有沒有真正需要做

if(response.type == "success"){ 

塊,因爲這會已經被成功回調確定被達到,如果發生錯誤,就不會達到該塊,並進入你的if語句像你想它,而應該同時擁有成功回調和錯誤回調,像這樣:

success: function(data) { 
    // Your success here 
}, 
error: function() { 
    // Your error handler here 
} 

這可能就是爲什麼你在遇到問題。

+0

哇,謝謝你這麼快速的迴應...好的,那麼我試着按照下面的方法更新我的代碼,並用相同的結果重新測試,頁面加載「Value is set!」。並保留在成功頁面URL:wp-admin/admin-ajax.php?action = outofoffice_ajax_request&outofoffice_value = true&aid = 19&nonce = 52477e05c4 –

+0

只有當你告訴它時,AJAX請求才會在完成時加載頁面。 AJAX背後的想法是,您發回新數據,然後將其包含在您的JS的頁面中。你可能不得不告訴頁面重新加載: document.location = document.location.href; – FBoucaut

+0

好吧,buuuut我試着添加window.location.reload(true);在成功的功能,並沒有改變.... mmmm –