Ajax-вызов успешно обновляет запись, но не возвращает строку эха. Этот скрипт работал раньше, но может быть из-за некоторого обновления он перестает работать. Он отлично работает на моей локальной системе, но когда я перехожу на сервер bluehost, это не работает.Ajax-вызов не возвращает данные после эхо-сигнала
Вот мой Ajax вызов:
// call to ajax script to update site
function autopost_update_site() {
// get base directory url
var baseDir = jQuery('#baseDir').val();
var id = jQuery('#site_id').val();
var site_name = jQuery('#site_name').val();
var site_url = jQuery('#site_url').val();
var is_active;
if (jQuery('#active_radio').is(':checked')){
is_active = '1';
} else {
is_active = '0';
}
var username = jQuery('#login_username').val();
var login_pass = jQuery('#login_pass').val();
// call to ajax script to update script
jQuery.ajax({
type: "POST",
url: baseDir + "/autopost_ajax_actions.php",
data: "id=" + id + "&site_name=" + site_name + "&site_url=" + site_url + "&is_active="+ is_active + "&username=" + username + "&login_pass="+login_pass +"&action=update_site",
beforeSend: function() {
jQuery('#update_site_button').attr("disabled", true);
// shortcode edit button
jQuery('#update_site_button').html('Updating...');
// admin page edit button
jQuery('#update_site_button').val('Updating...');
},
complete: function() {
jQuery('#update_site_button').attr("disabled", false);
// shortcode edit button
jQuery('#update_site_button').html('Update');
// admin page edit button
jQuery('#update_site_button').val('Update');
},
success: function(data) {
alert("Result: " + data); // NOTHING IS HAPPENING HERE, NO ALERT DATA
if (jQuery.trim(data) === "success") {
alert("Site updated.");
// refresh page
window.setTimeout('location.reload()', 200);
} else {
alert("Some error occured, Please try again.");
}
}
});
}
Вот мой заказ PHP скрипт для АЯКС действий:
// update site
if ($_POST['action'] == 'update_site' && isset ($_POST['id'])) {
// collect site data
$site_name = $wpdb->escape($_POST['site_name']);
$site_id = intval($wpdb->escape($_POST['id']));
$site_url = $wpdb->escape($_POST['site_url']);
$username = $wpdb->escape($_POST['username']);
$login_pass = $wpdb->escape($_POST['login_pass']);
$is_active = $wpdb->escape($_POST['is_active']);
$query = $wpdb->prepare("UPDATE " . $autopost_sites_table_name . " SET site_name = %s, site_url = %s, username = %s, login_pass = %s, is_active = %s WHERE id = %s", $site_name, $site_url, $username, $login_pass, $is_active, $site_id);
#$log->LogDebug($query);
// execute query
$result = $wpdb->query($query);
#$log->LogDebug($result);
if ($result !== FALSE || $result !== 0) {
// return success
$response = "success";
#$log->LogDebug($response);
echo $response; // THIS RESPONSE IS NOT SHOWING ON AJAX SUCCESS
} else {
$log->LogError("Failed to update site with ID: " . $_POST['id']);
echo "Failed to update site.";
}
}
Может кто-нибудь сказать мне, что не хватает?
«НИЧЕГО НЕ ПРОИСХОДИТ ЗДЕСЬ, НИКАКОЙ ДАННЫХ О ПРЕДУПРЕЖДЕНИИ» - Если вы не получаете предупреждение, функция успеха не работает. Посмотрите вкладку net tools разработчика. Посмотрите HTTP-запрос и его ответ. Это то, чего вы ожидаете? Какие ошибки сообщаются? – Quentin
Вызывается ваш журнал ошибок? – Zarathuztra
Используя проверку хрома, проверьте сетевой раздел, чтобы проанализировать, правильно ли отправлен ajax и каков ответ. –