Estoy trabajando en un proyecto struts2 donde tengo 3 controles de selección html cada uno depende de la selección previa. Supongamos que la primera selección es para el país, la segunda para el estado y la tercera para la ciudad. La lista de opciones en la selección de estado se filtrará para mostrar solo los estados en ese país, etc. Debido a algunas otras limitaciones, estoy usando el control de selección html básico en lugar de struts2. Este es un ejemplo de cómo estoy rellenando actualmente el selecto:struts2: actualizar segundo seleccionar basado en el primer valor de selección usando javascript y jquery
<select id="stateSelect" name="selectedState">
<s:iterator value="#session['myModel'].states" status="itr">
<option value="<s:property value="code"/>">
<s:property value="label"/>
</option>
</s:iterator>
</select>
Creo que lo que tengo que hacer es onchange caso hago una llamada ajax para recuperar la lista de "estados" basado en el "país" seleccionado . Las preguntas son:
1. ¿Cómo puedo hacer esta llamada ajax usando jquery?
2. ¿Qué debo pasar como la url de la llamada ajax? solo el nombre de la acción?
3. ¿cómo puedo analizar los resultados? Desde el código Java, puedo devolver una lista de objetos "State" que tienen "código" y "etiqueta" y otras propiedades. ¿Cómo puedo analizar esta lista en javascript y generar las opciones adecuadas para la etiqueta de selección?
He hecho esto antes. Haría lo que jonathan recomienda usar struts2-json-plugin (es bastante fácil de usar), las acciones que lo usan devuelven una cadena json. Si usa Chrome, lo verá en la pantalla, con Firefox lo verá usando Firebug. Con json en mano probablemente use $ .getJSON() de jQuery. El ejemplo de gato en esta página me ayudó mucho al comenzar: http://api.jquery.com/jQuery.getJSON/ Puede copiarlo en su propia página, y usará json y las imágenes de gato en el sitio web de flicker, lo que le permitirá trabajar con json sin necesidad de un servidor. – Quaternion