【问题标题】:jQuery AJAX Onchange Redirect IssuejQuery AJAX Onchange 重定向问题
【发布时间】: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


    【解决方案1】:

    您应该使用完整的 url 来直接在 jQuery 中,如下所示

    window.location.href = 'https://www.website.com/file-edit.php?id=<?php echo mysql_insert_id(); ?>';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 2011-03-15
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多