0

クエリと ajax でテーブルの行を更新しようとしています。

成功しましたが、問題が 1 つあります。

私が持っているページは、入力が 1 つのフォームです。入力はidDB内の行です。フォームを送信した後、行を更新しidますが、入力に別の行を挿入すると、ページを再度更新するまで機能しません。意味: テーブルの別の行を更新するには、ページを再度更新する必要があります。私はコードイグナイターを使用しています。

これは私のコードです:

<form method="POST" action="" >
    <fieldset data-role="controlgroup">
        <input type="text" name="id" id="id" value=""
        <input type="submit" name="submit-choice-a1" id="submit-choice-b1" value="submit"  />
    </fieldset>
</form>

JSは次のとおりです。

<script type="text/javascript">
$(function() {

    $("#submit-choice-b1").click(function(e) {

        var id = $('#id').val();
        var result = confirm("are you sure ?");
        if (result==true) {

            $.ajax({
                url: "the url that have the page with the update function",
                success: function(xhr){
                    alert('updated');
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert(xhr.status);
                    alert(xhr.responseText);
                }
            });
        }
    });
});
</script>
4

1 に答える 1

1

私は2つの方法を見ます:

1)<form>タグを使用せず、情報を取得して、データパラメーターにjQuery ajaxで送信するだけです。

$.ajax({
url: "the url",
type: "post",
data: {
    id: 68,//Your field id/class, got it with $(selector).attr("id") or $(selector).attr("class");
    anotherKey: anotherValue
    etc...
}
});

2) onsubmit 属性を使用してフォームを変更します

<form method="post" onsubmit="return sent();">

sent() 関数の最後に、フォームに伝えるために「return false」を追加する必要があります (ページをリロードしないでください)。

function sent() {
    ..your ajax implementation here..
    return false;
}
于 2013-08-26T15:31:29.923 に答える