2008-12-30 8 views
5

maintenant j'ai une page jsp qui permet de trier certains éléments, quand est prêt et un lien est cliqué une fonction javascript convertit toutes les informations en XML (texte dans une variable), après cela j'ai besoin d'envoyer à nouveau ce xml à la page jsp, j'ai essayé de mettre l'info dans une entrée cachée et de soumettre le formulaire, en envoyant $ .post et quelques autres fonctions jquery mais rien n'a fonctionné. Des idées?Envoyer une valeur de javascript à jsp (avec jquery)

dans mon JSP im lisant le message comme celui-ci:

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

Ce travail ne marche pas:

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

non plus:

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

remplaçant .text par .html travail ne marche pas

Toutes les idées sont les bienvenues, thx

Répondre

3

Vous allez probablement dans le mauvais sens ici. Vous n'avez pas fourni le code html, mais je suppose que c'est quelque chose comme ceci:

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

Si cela est exact, alors vous devriez dire $("#data").val(xml); au lieu de text() ou html() que ceux changer la chose apparié avec le texte ou html tu fournis. Cela devrait fonctionner pour votre solution actuelle.

Aussi, je propose de regarder $.post() de jQuery et d'autres comme une alternative à l'emballage tout comme xml sauf si c'est vraiment ce que vous voulez sur le backend. Il pourrait être plus facile de faire un objet javascript avec toutes les valeurs calées par quelques noms et transmettre à l'un des $.post(), $.get() de jQuery, etc. comme ceci:

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 

En fait, il ne survenait à moi maintenant que vous peut également envoyer votre xml cette façon (sauf si vous préférez que votre façon de faire les choses):

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

vous voudrez peut-être vous éclairer plus ici: Ajax @ jQuery docs

1

Vous pouvez toujours utiliser XMLHttpRequest pour envoyer les données. Cela peut être fait avec notre interaction sans utilisateur sur un élément tel qu'un bouton de soumission de formulaire. jQuery a une fonctionnalité intégrée pour aider avec de telles demandes.

http://docs.jquery.com/Ajax

+0

Suggérant une autre bibliothèque est comme la création d'un désordre ici. JQuery est aussi bon que Prototype en faisant des appels AJAX, sinon mieux. –

2

Essayez d'utiliser l'API jQuery Ajax - vous pouvez l'utiliser pour envoyer des données arbitraires via GET ou POST et que vous n'avez pas besoin de mettre en place une forme cachée ou quoi que ce soit.

+0

Oui, nous ne soumettons pas les formulaires, comme nous le faisons traditionnellement. Une suggestion sonore. –

Questions connexes