Question

En ce moment, j’ai une page jsp qui permet de trier certains éléments, quand elle est prête et qu’on clique sur le lien, une fonction javascript convertit toutes les informations en xml (texte dans une variable). Après cela, j’ai besoin d’envoyer ce xml à la page jsp à nouveau, j'ai essayé de mettre les informations dans une entrée cachée et de soumettre le formulaire, en envoyant avec $ .post et quelques fonctions jquery supplémentaires mais rien n'a fonctionné. Des idées?

dans mon JSP je lis le post comme ceci:

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

Cela ne fonctionne pas:

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

Cela non plus:

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

remplacer .text par .html ne fonctionne pas

Toutes les idées sont les bienvenues, merci

Était-ce utile?

La solution

Vous allez probablement dans la mauvaise direction ici. Vous n'avez pas fourni le code HTML, mais je suppose que cela ressemble à ceci:

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

Si cela est correct, vous devez alors indiquer $ (" # data "). val (xml); au lieu de text () ou html () lorsque ceux-ci changent la correspondance avec le texte ou le html que vous fournissez. Cela devrait fonctionner pour votre solution actuelle.

De plus, je vous proposerais d’examiner le $. post () de jQuery et d’autres comme une alternative à la compression de tout au format xml, à moins que cela ne soit vraiment ce que vous voulez dans le backend. Il pourrait être plus simple de créer un objet javascript avec toutes les valeurs saisies par certains noms et de le 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, cela ne m'est venu à l'esprit que maintenant que vous pouvez également envoyer votre code XML de cette façon (à moins que vous ne préfériez 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 davantage ici: Documents Ajax @ jQuery

Autres conseils

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

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 d'envoi de formulaire. jQuery intègre des fonctionnalités permettant de traiter de telles demandes.

http://docs.jquery.com/Ajax

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top