带有 AJAX 下拉菜单的代码点火器在form_validation失败并重定向/重新加载视图后不起作用

Codeigniter with AJAX dropdown menus not working after form_validation fails and redirects/re-loads view

本文关键字:新加载 加载 不起作用 视图 重定向 代码 下拉菜单 AJAX 点火器 失败 validation      更新时间:2023-09-26

一旦验证运行,就会失败,并继续重定向到相同的控制器索引。

    if (!$this->form_validation->run())
    {
        $this->index();
    }

该窗体是一个简单的两个下拉列表,一个依赖于另一个,但是一旦重新加载视图,第二个依赖下拉列表将停止工作。

这是 JS

    $(document).ready(function()
    {
$('#manufacturer_dropdown').change(function()
{
    $("#sw_names > option").remove();
    var id = $('#manufacturer_dropdown').val();
    $.ajax({
        type: "POST",
        url: "software/get_software_names/"+id,
        datatype : "JSON",
        success: function(sw_names)
        {
            $.each(sw_names,function(id,software_name)
            {
                var opt = $('<option />');
                opt.val(software_name);
                opt.text(software_name);
                $('#sw_names').append(opt);
            });
        }
    });
});
    });

如果我手动刷新页面,下拉菜单会再次工作。不确定发生了什么,也许文档就绪功能停止检查或其他什么。我不是JS专家...

如果需要,我可以发布更多代码。

编辑:我的JS网址缺少/

现在工作

如果你正在发出一个 ajax 请求,你必须给出一个 ajax 响应

您不能在这样的请求中间重定向页面。

我已经写了一些东西来解决这个问题,因为它是如此普遍。希望这会引导您前进:http://codebyjeff.com/blog/2013/04/how-do-i-use-ajax-with-framework-x