У меня есть бит кода jQuery AJAX, чтобы отправить файл в сценарий PHP, обновить / вставить в db и продолжить редактирование по идентификатору в качестве перенаправления. Работает отлично.
Проблема в том, что ... на каждой другой странице, кроме домашней (без перезаписи, базовый URL) скрипт нарушит работу прослушивателя событий onchange и пропустит загрузку, а затем продолжит редактирование прерванной загрузки.
Все остальные странице этот код работает идеально и работает так, как задумано. Но домашняя страница его не слушает. Я не могу разобраться. Только недавно мы получили последний идентификатор вставки, работающий для перенаправления для редактирования записи.
$(document).ready(function(a) {
$("#form-fileUpload").on("change", function(a) {
var file_data = $('#uploadFile').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
alert(form_data);
$.ajax({
url: '/ajax_file_upload.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(php_script_response){
if (data.redirect == true) {
window.location.href = '/file-edit.php?id=<?php echo mysql_insert_id(); ?>';
}
//alert(php_script_response);
}
});
});
});
Как я могу предотвратить игнорирование этим действием отправки onchange для нашей формы? Это что, домен root? Не думал, что код PHP актуален, он работает нормально, как и предполагалось.
Таким образом, пользователь просматривает файл, и форма автоматически загружает и перенаправляет их, отправляя их для редактирования и добавления дополнительных деталей в форму. Идеально подходит для всех страниц, кроме домашней. Неисправен JS? Есть ли обработка для этого в этой ситуации вне дополнительных страниц?
Код PHP, который играет эту роль (AJAX скрипт):
$id = $conn->lastInsertId();
// Redirect & complete details
header("Location: https://www.website.com/editfile?id=".$id.");