使用ajax和Codeigniter更改表单时自动更新html

时间:2016-03-19 06:30:47

标签: javascript php jquery ajax codeigniter

我需要在更改表单时自动更新答案。如果我删除e.preventDefault();我可以这样做;但它会导致刷新页面。我不想要它。这种情况有什么技巧吗?

查看表单1

<div>Some Content</div>
<div><?php echo($draft);?></div>

查看草稿HTML

<p>This is array 1 : <?=$do->fill($keys[0]);?></p>
<p>This is array 2 : <?=$do->fill($keys[1]);?></p>

的Ajax

$(function() {
    $(".auto_submit").change(function() {
        $("form").submit();
    });
});
$(function () {
    $('form').on('submit', function (e) {
        var url = $(location).attr('href');
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: url,
            data: $('form').serialize(),
            success: function (e) {
                console.log($('form').serialize());
            }
        });
    });
}); 

查看表单

<form class="auto_submit" action="<?=base_url('web/dashboard/create/html1');?>" method="post">
<input type="text" name="answer[]">
<input type="text" name="answer[]">
</form>

控制器CI

function create($doc){
        if(!isset($_POST['answer'])) $data['keys'] = null;
        else $data['keys'] = $_POST['answer'];
        $data['do'] = $this;
        if($doc == 'html1'){
            $data['draft'] = $this->load->view('doc/html1', $data, true);
            $this->template->admin_render('form/form1', $data);
        }
    }

1 个答案:

答案 0 :(得分:0)

如果您想在不重新加载整个页面的情况下自动更新,只需刷新div,

<div id="div1">
<div id="div2">
<p>This is array 1 : <?=$do->fill($keys[0]);?></p>
<p>This is array 2 : <?=$do->fill($keys[1]);?></p>
</div>
</div>

jquery的:

$(function() {
    $(".auto_submit").change(function() {
        $("form").submit();
    });
});
$(function () {
    $('form').on('submit', function (e) {
        var url = $(location).attr('href');
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: url,
            data: $('form').serialize(),
            success: function (e) {
                console.log($('form').serialize());
                $('#div1').load(url + ' #div2'); //note: the space before #div2 is very important
            }
        });
    });
}); 

如果有帮助,请更新我。

修改 然后将您的答案直接附加到<P>代码,而不张贴表单

 <p>This is array 1 : <span id="answer1"><?=$do->fill($keys[0]);?></span></p>
    <p>This is array 2 : <span id="answer2"><?=$do->fill($keys[1]);?></span></p>

查看表单:

<form class="auto_submit" action="<?=base_url('web/dashboard/create/html1');?>" method="post">
<input id="inputanswer1" type="text" name="answer[]">
<input id="inputanswer2" type="text" name="answer[]">
</form>

jquery的:

 $(function() {
        $(".auto_submit").change(function() {
            //$("form").submit();
            var answer1 = $("#inputanswer1").val(),
                answer2 = $("#inputanswer2").val();
            $("#answer1").text(answer1);
            $("#answer2").text(answer2);
        });
    });