Domanda

in questo momento ho una pagina jsp che permette di ordinare alcuni elementi, quando è pronto e si fa clic su un collegamento, una funzione javascript converte tutte le informazioni in xml (testo in una variabile), dopodiché devo inviare questo xml a di nuovo nella pagina jsp, ho provato a inserire le informazioni in un input nascosto e a inviare il modulo, inviando con $ .post e qualche altra funzione jquery ma nulla ha funzionato. Qualche idea?

nel mio JSP sto leggendo il post in questo modo:

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

Questo non funziona:

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

Anche questo:

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

la sostituzione di .text con .html non funziona

Tutte le idee sono benvenute, grazie

È stato utile?

Soluzione

Probabilmente stai andando nella direzione sbagliata qui. Non hai fornito il codice HTML, ma suppongo che sia qualcosa del genere:

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

Se questo è corretto, dovresti dire $ (" # data "). val (xml); anziché text () o html () in quanto cambiano l'oggetto abbinato con testo o html forniti. Questo dovrebbe funzionare per la tua soluzione attuale.

Inoltre proporrei di guardare $ .post () di jQuery e altri come alternativa al confezionamento di tutto come xml a meno che questo non sia proprio quello che vuoi sul backend. Potrebbe essere più semplice creare un oggetto javascript con tutti i valori digitati da alcuni nomi e passarlo a uno dei $ .post (), $ .get () di jQuery, ecc. Come questo :

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

In realtà mi è capitato solo ora che puoi anche inviare il tuo xml in questo modo (a meno che tu non preferisca il tuo modo di fare le cose):

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

Potresti voler illuminarti di più qui: Ajax @ jQuery docs

Altri suggerimenti

Prova a utilizzare l'API jQuery Ajax : puoi utilizzarla per inviare dati arbitrari tramite GET o POST e non è necessario impostare un modulo nascosto o altro.

È sempre possibile utilizzare un XMLHttpRequest per inviare i dati. Questo può essere fatto con il nostro senza interazione dell'utente su un elemento come un pulsante di invio del modulo. jQuery ha funzionalità integrate per l'assistenza con tali richieste.

http://docs.jquery.com/Ajax

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top