【问题标题】:Chrome not loading view from ajax after submiting forms提交表单后 Chrome 未从 ajax 加载视图
【发布时间】:2015-03-30 08:47:57
【问题描述】:

我正在尝试从 ajax 获取页面视图并放入一些 div。我目前在 Codeigniter 工作。

Jquery Ajax

  $(document).ready(function() {

    $("form#data").submit(function(){
       // form validation rules..
        var formData = new FormData($(this)[0]);

        $.ajax({
            url: base_url + "index.php/hotels/quick_addNewHotel",
            type: 'POST',
            data: formData,
            async: false,
            success: function (data) {
                $("#form-alert").html(" ");
                $("#step1").removeClass("progtrckr-todo").addClass("progtrckr-done");
                $("#quick_setup").html(data);
            },
            cache: false,
            contentType: false,
            processData: false
        });

        return false;
     }); 

  });

控制器(酒店)

 function quick_addNewHotel()
{
    if ($this->session->userdata('logged_in')) {
         //php code to post input form data to database

         $this->load->view('quickSetup/addNewHotel');
    } 
}

以上代码在 Firefox 中运行良好。在 ajax 成功时,视图被加载到 div。但是在 Chrome 中尝试时。

表单数据提交成功并存入数据库。但是为了加载视图$this->load->view('quickSetup/addNewHotel'),它被重定向到上一页,即包含已提交表单的页面。我的代码是否有任何错误。

【问题讨论】:

  • 您应该使用$this->load->view('quickSetup/addNewHotel',$data,TRUE); 来获取数据,而不是在 ajax 中呈现视图。
  • 我需要渲染该页面包含的所有视图。不仅仅是数据。

标签: javascript php jquery ajax codeigniter


【解决方案1】:

var formData 之前写e.preventDefault();,你会没事的。还将function() 更改为function(e)。我认为 return false; 对于 Chrome 来说是不够的。

希望我能帮上忙。 :)

【讨论】:

  • 在我添加 e.preventDefault 后它起作用了。但它不适用于非formData。任何解决方案
  • 如果它有效,请接受我的回答,因为这是对您具体问题的回答。谢谢你。另外,如果您为我解释这个非 formData 上下文,我会尽可能提供帮助。
  • 您的代码在第一种情况下对我有用。我正在提交表单并再次显示另一个表单,当我尝试提交另一个表单时,页面会在 chrome 中刷新。在Firefox中它运行良好。任何解决方案
  • e.preventDefault(); 在吗?您是否再次提交相同的表格?顺便说一句,我不明白为什么不只创建一个简单的按钮,在其上注册一个单击处理程序并在用户单击该按钮时发送表单数据。您不需要提交按钮。
  • 所以没有任何问题。我想知道当我在顶部编写脚本然后是 html 时它是否有效。首先是html,然后是脚本。它的力量怎么可能是错误的。
猜你喜欢
  • 1970-01-01
  • 2017-04-02
  • 2013-01-09
  • 2013-04-26
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
相关资源
最近更新 更多