質問

今、いくつかのアイテムをソートできるjspページがあり、準備ができてリンクがクリックされると、javascript関数がすべての情報をxml(変数のテキスト)に変換します。この後、このxmlを送信する必要がありますjspページに戻り、情報を非表示の入力に入れてフォームを送信し、$。postといくつかのjquery関数を送信しようとしましたが、何も機能しませんでした。 アイデアはありますか?

私のJSPでは、次のように投稿を読んでいます:

<% out.println(request.getParameter("data")); %>

これは機能しません:

xml = "<xml></xml>";
$("#form").submit(function(){
   alert("JS: " + $("#data").text());
   $("#data").text(xml);
});

これ:

xml = "<xml></xml>";
$("#data").text(xml);
$("#form").submit();

.textを.htmlに置き換えても機能しません

任意のアイデアを歓迎します、thx

役に立ちましたか?

解決

あなたはおそらく間違った方向に進んでいるでしょう。あなたはhtmlコードを提供しませんでしたが、私はそれが次のようなものであると仮定します:

<form method="POST" id="form">
    <input type="hidden" id="data" />
</form>

それが正しい場合、 text()または htmlの代わりに $(&quot;#data&quot;)。val(xml); と言う必要があります。 ()は、提供されたテキストまたはHTMLで一致するものを変更するためです。これは現在のソリューションで機能するはずです。

また、jQueryの $。post()などを、すべてをxmlとしてパックする代わりに、これが本当にバックエンドで必要な場合を除き、検討することを提案します。いくつかの名前でキー付けされたすべての値を持つjavascriptオブジェクトを作成し、このようにjQueryの $。post()、$。get()などのいずれかに渡す方が簡単です:

var values = {name: "John", surname: "Doe"};
values.age = 25;
$.post("index.jsp", values); // this will result in a post with 3 variables: name, surname, age

実際には、xmlをこの方法で送信することもできるようになっただけです(物事を行う方法を好まない限り):

$.post("index.jsp", {data: "<xml><whatever-else-needs-to-be-in-here/></xml>"});

ここでさらに自分自身を啓発したいと思うかもしれません: Ajax @ jQuery docs

他のヒント

jQuery Ajax APIの使用-GETまたはPOSTを介して任意のデータを送信できます非表示のフォームなどを設定する必要はありません。

XMLHttpRequestを使用してデータを送信できます。これは、フォーム送信ボタンなどの要素に対するユーザーの操作なしで実行できます。 jQueryには、このようなリクエストを支援するための機能が組み込まれています。

http://docs.jquery.com/Ajax

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top