2013-11-26 2 views
0

ОК, поэтому я пытаюсь передать вызов AJAX в Wordpress через плагин, который работает нормально, но этот Javascript ниже не вернется к исходной странице после данных передается функции ниже. Что мне не хватает?AJAX Call не показывает исходную страницу или обновляет ее

// 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!" от этой функции;

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"){ 

, так как это уже было бы определено отзывом успехом быть достигнута, если ошибка не достигнет этого блока и перейти в ваше заявление, если, как вы хотите, чтобы он, вместо этого вы должны иметь как обратный вызов и обратный вызов ошибки следующим образом:

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

Это может быть, почему у вас возникли проблемы.

+0

Ничего себе, спасибо за такой быстрый ответ ... ОК, поэтому Я попытался обновить свой код в соответствии с приведенным ниже и повторно протестировать с тем же результатом, страница загружает значение «Значение установлено!». и остается на 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 –

Смежные вопросы