提交后如何刷新表格?

时间:2012-11-25 19:07:22

标签: javascript jquery ajax

我的形式像

<form id="abc">
<div>
<select >
<option id= "1"> ha1 </option>
<option id= "1"> ha2 </option>
<option id= "1"> ha3 </option>
<option id= "1"> ha4 </option>
</select>
<input type="submit">
</div>
</form>

表单提交我使用过像

 $(document).ready(function() {

        $('#abc').submit(function(){

            $.post('filter.php', $(this).serialize(), function(data){

          $('#abc').reset();  //(this).reset();  

            });             

            return false;


        });

    });

此处重置无效。重置的任何问题我都没有。 表单提交后,我想刷新带有db值的表单(显示刚刚选择的值)。

如何在提交或div刷新后刷新页面。

4 个答案:

答案 0 :(得分:0)

$(document).ready(function() {
    $('#abc').submit(function(){
        $.post('filter.php', $(this).serialize(), function(data){
        window.location.href=window.location.href;  
        });             
        return false;
    });

});

通过将href设置为实际值来重新加载页面:)

或者你也可以使用它:

parent.document.getElementById("abc").reload();
顺便说一句:我没有看到你的服务器端代码,你必须渲染所选的值,当然,我假设你正在返回它们,我的答案不包括服务器端场景。我的代码仅适用于在将数据库保存到db后从服务器返回所选值的情况。

答案 1 :(得分:0)

如果您拥有服务器端代码,则可以返回响应中的值,然后在回调中使用这些值填充字段。

让我们说这是你的回答JSON:

{
    data: [{
             "username": "john doe"
    }]
}


$('#abc').submit(function(){
    $.post('filter.php', $(this).serialize(), function(data){

        $('#abc').reset();  //(this).reset();  

        $('input#username').val(data.username);
    });             

    return false;
});

答案 2 :(得分:0)

如doniyor的回答中所述,您可以使用window.location.href来刷新页面,但这不会使用您刚写入数据库的值填充表单。

您有两个选项可用于使用数据库填充表单,在您的情况下可能需要实现两者(由您决定)。

首先是在第一次加载html时填充表单。这可以在服务器端完成,方法是查询数据库并获取值,然后根据值设置正确的单选按钮,如下所示:

<input type="radio" selected="selected" />

另一个选项是使用jquerys .prop()方法设置复选框async。这要求您的标签具有唯一的ID(无论如何它们都应该具有)。例如:

$("#yourIDHere").prop('checked',true);

在后一种情况下,您可以使用您发布的脚本输出要使用的正确ID。这取决于您的判断,取决于您的情况,但希望这个答案能为您指明正确的方向。

祝你好运

答案 3 :(得分:0)

尝试使用它,

$('#abc').submit(function(){
    $.post('filter.php', $(this).serialize(), function(data){

        $('#abc').find('input:text, input:password, input:file, select, textarea').val('');
        $('#abc').find('input:radio, input:checkbox')
        .removeAttr('checked').removeAttr('selected');

    });             

  return false;
});