Tengo un formulario creado con Struts2 (la parte estática del formulario, siempre está) y con Ajax y javascript (la parte dinámica, el formulario va agregando elementos en función de lo que el usuario le va introduciendo). Y hasta aquí bien.
El problema es cuando tengo que hacer el submit del formulario, enviar los datos al servidor. No sé como enviar estos datos, porque con javascript se hace mediante el XMLHttpRequest y en cambio con Struts2 mediante una Action (la cuál tiene los mismos atributos que todos los campos del formulario).
Os pongo un trozo del código:
Código:
Alguna idea? Es que he buscado en todas partes y ya no sé que hacer... necesito los struts2 porque la aplicación web que estoy desarrollando está basada en struts2, y también necesito ajax con javascript para poder generar ese formulario incremental (dinámico, variable... lo que sea...) ...<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>ARS - Is Available Form</title> <s:head theme = "ajax"/> <link href="<s:url value="/css/mainstyle.css"/>" rel="stylesheet" type="text/css"/> <link rel="STYLESHEET" type="text/css" href="rich_calendar/rich_calendar.css"> <script language="JavaScript" type="text/javascript" src="rich_calendar/rich_calendar.js"></script> <script language="JavaScript" type="text/javascript" src="rich_calendar/rc_lang_en.js"></script> <script language="javascript" type="text/javascript"> // on click -> disable/enable the jobID textfield function insertJobID() { if (document.formreservation.jid.disabled == true) { document.formreservation.jid.disabled = false } else { document.formreservation.jid.disabled = true } } // onkeyup -> create a DIV for each service function addDivsServices(event) { divservices = document.createElement('div'); divservices.id = 'divservices'; divservices.style.border = "solid #00bfff 3px"; divservices.style.padding = "5px"; (document.getElementById('formreservation')).appendChild(divservices); for(i = 0; i < numS; i++) { //THE DIV OF THE SERVICE -> name: 'divservice' + i divservice = document.createElement('div'); divservice.id = 'divservice' + i; divservice.style.border = "solid #00cd00 3px"; divservice.style.padding = "5px"; divservice.appendChild(document.createElement('br')); //SERVICE ID txt = document.createTextNode('Service ID: '); serviceid = document.createElement('input'); serviceid.name = 'serviceid' + i; divservice.appendChild(txt); divservice.appendChild(serviceid); //SPACE space = document.createTextNode("\u00a0"); divservice.appendChild(space); //COMBOBOX TYPE OF RESERVATION txt = document.createTextNode('Type of Reservation: '); cbx = document.createElement('select'); cbx.name = 'tor' + i; opt = document.createElement('option'); opt.value = '1'; opt.text = '1'; cbx.appendChild(opt); opt = document.createElement('option'); opt.value = '2'; opt.text = '2'; cbx.appendChild(opt); opt = document.createElement('option'); opt.value = '3'; opt.text = '3'; cbx.appendChild(opt); cbx.onchange = addReservationConstraints; divservice.appendChild(txt); divservice.appendChild(cbx); //NEW LINE divservice.appendChild(document.createElement('br')); divservice.appendChild(document.createElement('br')); [...] } } [...] </script> </head> <body> <h1> Is Available </h1> <br> <s:form name = "formreservation" id = "formreservation" action = "isAvailable" method = "POST"> <s:checkbox label = "Is a PRE reservation? " name = "ispre" value = "false" onclick = "insertJobID()"/><br> <s:textfield name = "jid" label = "Job ID" disabled = "true"/><br> <s:textfield name = "numservices" label = "Number of services" onkeyup = "addDivsServices(event)"/><br> <s:submit value = "Submit" align = "center"/> </s:form> </body> </html>
Cualquier ayuda me servirá... Muchas gracias!