2011-07-27 9 views
0

これは私の必要性です:Ajaxを正しく使用する

私はいくつかのテキストボックスが表示されているポップアップと送信ボタンを表示します。ユーザーがsubmitを押すと、テキストボックスに挿入された値をdbに挿入する必要があります。私はこれをやったことがありますが、私はそれをリフレッシュせずに自分自身のページに新たに追加された値を表示する必要もあります。私は、Ajaxを使用して、これを試してみましたが、それはdivタグで全体の応答を示し

printWriter.print("<table><tr>"+data.getId()+"</tr></table>");

、その後のようなサーブレットでHTMLタグを書くの多くを必要とします。これを簡単にする方法はありますか?

答えて

1

これを行うには、サーブレットがJSONまたはXMLをページに戻してから、ビューを更新するクライアント側のjavascriptを用意するのが良い方法です。データがシンプルな場合は、JSONやXMLが必要ない場合もあります。コンマ区切りの値リストで十分です。

このようにすると、サーブレットはAJAXレスポンスにHTMLタグを書くことを心配する必要がなくなり、クライアント側は悪意のあるHTMLがサーバーから戻ってくるのを心配する必要はありませんユーザーの入力が含まれる場合)。

+0

新しく作成されたレコードを、htmlテーブルのコーディングである、うまく設計されたユーザーが読める形式で表示する必要があります。どうすればjavascriptでそれを行うことができますか?また、私のデータは固定長ではなく、コンマ区切りの値を送ることができないので、コンマを含むことがあります。 –

+0

jQueryを使用すると、JavaScriptを使用してDOMを簡単に変更できます。レスポンスを処理し、必要な数だけ要素を追加して表示することができます。 '$(document.createElement(...))'を使用して新しいjQueryラップDOM要素を作成し、それを 'parentElement.append'を使用してDOM要素に追加します。 CSVがうまく動作しない場合は、おそらくJSONが良い選択です。 –

+0

JSONを学ぶ良いリンクはありますか?また、私はJQueryに精通していないが、私はjavascriptを知っているので、私たちはjavascriptでこれを行うことができますか? –

0

jQueryを使用するとかなり簡単です。このようなもの:

$('#form_id').submit(function() { 
    $.ajax({ 
     type: "POST", 
     url: "/YourServlet", 
     data: $(this).serialize(), 
     success: function(msg){ 
      $('#result_div_id').html("Data Saved: " + msg); 
     } 
    }); 
    return false; 
}); 

ここはjQuery docsです。

関連する問題