struts2: update zweites wählen Sie basierend auf dem ersten Wert auswählen, der mit javascript und jquery
Arbeite ich an einer struts2 Projekt, wo ich 3 html-select-Steuerelemente jeweils einen abhängig von der vorherigen Auswahl ab. Sagen, dass die erste Option ist für Land, zweitens für den Staat, die Dritte für die Stadt. Die Liste der Optionen, die in dem Staat wählen, würde gefiltert werden, um nur die Zustände in diesem Land und so weiter. Durch einige andere Einschränkungen bin ich mit der grundlegenden html-select-Steuerelement anstelle von struts2 ist. Hier ist ein Beispiel dafür, wie ich bin derzeit bevölkern wählen Sie:
<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>
Ich denke, dass das, was ich tun müssen, ist onchange-Ereignis ein ajax-Aufruf zum abrufen der Liste der "Staaten" auf der Basis der gewählten "Landes". Die Fragen sind:
1. wie kann ich das ajax-call mit jquery?
2. was brauche ich, um zu gehen, wie die url für den ajax-call? einfach den Namen der Aktion aus?
3. wie kann ich analysieren, die Ergebnisse zurück? Aus java-code, den ich zurückkehren kann, eine Liste von "Staat" Objekte "code" und "Bezeichnung" und andere Eigenschaften. Wie kann ich analysieren diese Liste in javascript und generieren Sie die richtigen Optionen für das select-tag?
- Ich habe dies getan, bevor. Ich würde tun, was jonathan empfiehlt die Verwendung der struts2-json-plugin (es ist ziemlich einfach zu bedienen), Aktionen, die verwenden es wieder einen json-string. Wenn Sie chrome verwenden, sehen Sie rechts auf dem Bildschirm, mit firefox sehen Sie es mit firebug. Mit json in der hand, die Sie wahrscheinlich verwenden die jQuery $.getJSON (), die Katze z.B. auf dieser Seite haben mir sehr geholfen beim Start von: api.jquery.com/jQuery.getJSON können Sie kopieren, in eigene Seite, und es wird die json verwenden, und die cat-Bilder aus dem flimmern web-site, so dass Sie die Arbeit mit json, ohne einen server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
JQuery
Entnommen dieses tutorial
Update:Dieses Beispiel verwendet wird, laden Stadt-Liste basierend auf den Staat ausgewählt. Sie können tun, etwas ähnliches zu laden, Status-Liste auf der Auswahl der Länder. Auch hier ist ein link beschreiben ajax-request/response für Federbeine ohne plugin
In der Regel, die Art und Weise, dies zu tun ist mit der Struts2 JSON-plugin, die Schiffe mit den letzten Versionen von Struts2. Für die Interaktion mit jQuery in Ihre JSP-Sie benutzen möchten s:url erstellen Sie eine URL für Ihre JSON-Aktion und dann kann man es aufrufen, mithilfe von jQuery .getJSON() oder .load().
Allerdings, wenn Sie Ihre dropdown-Entscheidungen sind wirklich nicht so kompliziert, nicht über Architekten. Es kann einfacher sein, machen Sie alle mit s:iterator auf die erste Seite laden und verwenden .ändern Sie() auf Ihrem dropdown-Boxen, um entweder verschieben Sie die Daten zwischen den Komponenten wählen, oder vermehren das name-Attribut auf eines der Felder auswählen, die für das Formular Absenden.