CodeIgniter和AJAX表单提交

Ty *_*ley 3 javascript php mysql ajax codeigniter

我试图将从表单提交的数据保存到我的mysql数据库中,然后更新div元素,并将最后一个发布的项目添加到div中的列表中.

现在我只想回复一个回复,我并不担心此刻格式正确.

我的问题是表单不会e.preventDefault();在适当的位置提交,但没有它,表单会执行发布到数据库然后刷新页面的常规方法.

这是我的AJAX调用:

$(document).ready(function() {

    $('form#feedInput').submit(function(e) {

        e.preventDefault();

        $.ajax({
            type: "POST",
            url: "<?php echo site_url('dashboard/post_feed_item'); ?>",
            data: $('.feed-input').val(),
            dataType: "html",
            success: function(data){
                debugger;
                $('#feed-container').prepend(data);
            },
            error: function() { alert("Error posting feed."); }
       });

    });
});
Run Code Online (Sandbox Code Playgroud)

我不认为我发布我的控制器代码是不必要的,看看我的问题是如何形式不会使它通过e.preventDefault();功能.

如果e.preventDefault()函数在它到达$.ajax()函数之前停止它,如何通过AJAX提交此表单?

小智 6

dataajax调用的属性无效.它应该是JSON格式{ key: $('.feed-input').val() }或查询格式'key='+$('.feed-input').val().debugger成功方法中还有一个不必要的变量.

工作代码可以是:

$('form#feedInput').submit(function(e) {

    var form = $(this);

    e.preventDefault();

    $.ajax({
        type: "POST",
        url: "<?php echo site_url('dashboard/post_feed_item'); ?>",
        data: form.serialize(), // <--- THIS IS THE CHANGE
        dataType: "html",
        success: function(data){
            $('#feed-container').prepend(data);
        },
        error: function() { alert("Error posting feed."); }
   });

});
Run Code Online (Sandbox Code Playgroud)