2008-12-30 10 views
5

Jetzt habe ich eine JSP-Seite, die einige Artikel zu sortieren, wenn bereit ist und ein Link angeklickt wird, konvertiert eine JavaScript-Funktion alle Informationen in XML (Text in einer Variablen), danach muss ich dieses XML wieder an die JSP-Seite senden, ich habe versucht, die Informationen in eine versteckte Eingabe zu setzen und das Formular abzuschicken, mit $ .post und einigen weiteren jquery-Funktionen, aber nichts hat funktioniert. Irgendwelche Ideen?Senden eines Wertes von Javascript nach Jsp (mit Jquery)

in meinem JSP im die Post wie folgt zu lesen:

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

Dies funktioniert nicht:

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

Dies entweder:

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

ersetzt .text mit .html nicht funktioniert

Alle Ideen sind willkommen, thx

Antwort

3

Sie gehen hier wahrscheinlich in die falsche Richtung. Sie haben den HTML-Code nicht zur Verfügung stellen, aber ich nehme an, es so etwas wie diese:

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

Wenn das richtig ist, dann sollte man sagen $("#data").val(xml); statt text() oder html() wie die abgestimmte Sache mit Text zu ändern oder html Sie bieten. Dies sollte für Ihre aktuelle Lösung funktionieren.

Auch ich würde vorschlagen, jQuery $.post() und andere als eine Alternative zu packen alles als XML, es sei denn, das ist wirklich, was Sie auf dem Backend wollen. Es könnte einfacher sein, nur ein JavaScript-Objekt mit allen Werten von einigen Namen eingegeben zu bilden und geben sie nicht an einer von jQuery $.post(), $.get() usw. wie folgt aus:

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 

Eigentlich nur es mir aufgetreten jetzt, dass Sie können auch Ihre xml auf diese Weise senden (es sei denn Sie Ihren Weg, Dinge zu tun bevorzugen):

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

Sie könnten sich hier mehr aufklären wollen: Ajax @ jQuery docs

1

Sie könnten immer eine XMLHttpRequest verwenden, um die Daten zu senden. Dies kann mit unserer ohne Benutzerinteraktion auf einem Element wie einer Formularübergabe-Schaltfläche erfolgen. jQuery verfügt über integrierte Funktionen zur Unterstützung solcher Anfragen.

http://docs.jquery.com/Ajax

+0

eine andere Bibliothek vorschlage, ist hier ein Chaos wie zu schaffen. JQuery ist so gut wie Prototype, wenn es um AJAX-Aufrufe geht, wenn nicht sogar besser. –

2

Der Versuch, die jQuery Ajax API - Sie können es verwenden, beliebige Daten per GET oder POST zu senden und Sie nicht brauchen eine versteckte Form oder etwas einzurichten.

+0

Ja, wir reichen keine Formulare ein, wie wir es traditionell tun. Ein stichhaltiger Vorschlag. –