0

私は次のような形をしています

<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

5 に答える 5

2
$(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();

ちなみに、私はあなたのサーバーサイドコードを見ていません、あなたは選択された値をレンダリングしなければなりません、もちろん、私はあなたがそれらを返すと仮定しています、私の答えはサーバーサイドシーンをカバーしていません。私のコードは、選択した値をデータベースに保存した後にサーバーから返す場合のみです。

于 2012-11-25T19:12:47.223 に答える
0

doniyorの回答で述べたように、window.location.hrefを使用してページを更新できますが、これでは、データベースに書き込んだばかりの値がフォームに入力されません。

フォームにデータベースを入力するために使用できる2つのオプションがありますが、両方を実装することが望ましい場合があります(あなた次第)。

1つ目は、最初にhtmlをロードするときにフォームにデータを入力することです。これは、データベースにクエリを実行して値を取得し、次のように値に基づいて正しいラジオボタンを設定することでサーバー側で実行できます。

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

もう1つのオプションは、チェックボックスをjquerys .prop()メソッドと非同期に設定することです。これには、タグに一意のIDが必要です(とにかくそれが必要です)。例:

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

後者の場合、使用する正しいIDを出力するために投稿するスクリプトを使用できます。これはあなたの裁量次第であり、あなたのケースに依存しますが、うまくいけば、この答えはあなたを正しい方向に向けます。

よろしくお願いします

于 2012-11-25T19:19:57.217 に答える
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;
});
于 2012-11-25T19:22:03.550 に答える
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;
});
于 2012-11-25T19:14:19.160 に答える
0

PureJavaScriptを使用してフォームフィールドをリセットします。

document.getElementById("formid").reset();

于 2022-02-11T13:58:18.787 に答える