【发布时间】:2020-05-27 16:19:28
【问题描述】:
我有一些 jQuery AJAX 代码,用于将文件发送到 PHP 脚本、更新/插入到 db 并继续通过 ID 进行编辑作为重定向。工作正常。
问题是.. 除了主页(无重写,基本 url)之外的所有其他页面,脚本都会中断 onchange 事件侦听器,并跳过上传,然后继续编辑损坏的上传。
每隔一个页面,此代码都可以完美运行并按预期执行。但是主页,它不听。我想不明白。直到最近我们才获得了最后一个插入 ID,用于重定向到编辑条目。
$(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 提交操作?这是根域的事情吗?不认为 PHP 代码是相关的,它按预期工作正常。
因此用户浏览文件,表单会自动上传和重定向,发送它们以在表单中编辑和添加更多详细信息。完美的所有页面,但主页。 JS有错吗?在这种情况下,是否有远离子页面的处理方式?
扮演这个角色的 PHP 代码(AJAX 脚本):
$id = $conn->lastInsertId();
// Redirect & complete details
header("Location: https://www.website.com/editfile?id=".$id.");
【问题讨论】:
标签: php jquery mysql ajax events