Обработка ответа в Js/AJAXPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Обработка ответа в Js/AJAX

Сообщение Anonymous »

Я создал функцию для обновления данных с помощью AJAX. В xhr.onload this.responseText не отображает никаких значений в журнале консоли, и выполняется только часть условия else, даже несмотря на то, что обновление происходит. Я пытался отладить его с помощью console.log, но это не дало никаких результатов.
Submit

function upd_general(site_title_val, site_about_val) {
let xhr = new XMLHttpRequest();
xhr.open("POST", "ajax/settings_crud.php", true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

xhr.onload = function () {
console.log('Response:', this.responseText.trim()); // Debugging line
var myModal = document.getElementById('general-s');
var modal = bootstrap.Modal.getInstance(myModal);
modal.hide();

if (this.responseText.trim() === '1') { // Trim to remove any extra whitespace
js_alert('success', 'Changes Saved!');
get_general();
} else {
js_alert('error', 'No Changes made!');
get_general();
}
};

xhr.send('site_title=' + encodeURIComponent(site_title_val) + '&site_about=' + encodeURIComponent(site_about_val) + '&upd_general');
}


Ниже приведен код файла settings_crud.php
if (isset($_POST['upd_general'])) {
$frm_data = filteration($_POST);

$q = "UPDATE `settings` SET `site_title`=? , `site_about`=? WHERE `sr_no`=?";
$values = [$frm_data['site_title'], $frm_data['site_about'], 1];
$res = update($q, $values, "ssi");
return $res;
}

функция фильтрации
function filteration($data)
{
foreach ($data as $key => $value) {
$data[$key] = trim($value);
$data[$key] = stripcslashes($value);
$data[$key] = htmlspecialchars($value);
$data[$key] = strip_tags($value);
}
return $data;
}

и функция обновления
function update($sql, $values, $datatypes)
{
$con = $GLOBALS['con'];
if ($stmt = mysqli_prepare($con, $sql)) {
mysqli_stmt_bind_param($stmt, $datatypes,...$values);
if (mysqli_stmt_execute($stmt)) {
$res = mysqli_stmt_affected_rows($stmt);
mysqli_stmt_close($stmt);
return $res;
} else {
mysqli_stmt_close($stmt);
die("Query cannot be executed - Update");
}
} else {
die("Query cannot be prepared - Update");
}
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-js-ajax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»