Tôi đang làm việc trên dự án struts2 nơi tôi có 3 điều khiển chọn html mỗi tùy thuộc vào lựa chọn trước đó. Giả sử lựa chọn đầu tiên là cho quốc gia, thứ hai cho tiểu bang, thứ ba cho thành phố. Danh sách các tùy chọn trong trạng thái chọn sẽ được lọc để chỉ hiển thị các trạng thái ở quốc gia đó, v.v. Do một số hạn chế khác, tôi đang sử dụng điều khiển chọn html cơ bản thay vì của struts2. Dưới đây là một ví dụ về cách tôi hiện đang populating chọn:struts2: cập nhật lựa chọn thứ hai dựa trên giá trị lựa chọn đầu tiên sử dụng javascript và 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>
Tôi nghĩ rằng những gì tôi cần làm là onchange kiện làm một cuộc gọi ajax để lấy danh sách các "quốc gia" dựa trên "đất nước" được chọn . Các câu hỏi là:
1. làm thế nào tôi có thể thực hiện cuộc gọi ajax này bằng jquery?
2. Tôi cần truyền thông tin gì cho url của cuộc gọi ajax? chỉ là tên hành động?
3. làm cách nào để phân tích cú pháp kết quả? Từ mã java tôi có thể trả về một danh sách các đối tượng "Trạng thái" có "mã" và "nhãn" và các thuộc tính khác. Làm cách nào để phân tích cú pháp danh sách này trong javascript và tạo các tùy chọn thích hợp cho thẻ chọn?
Tôi đã thực hiện việc này trước đây. Tôi sẽ làm những gì jonathan đề nghị sử dụng struts2-json-plugin (nó khá dễ sử dụng), các hành động sử dụng nó trả về một chuỗi json. Nếu bạn sử dụng chrome, bạn sẽ thấy nó ngay trên màn hình, với firefox bạn sẽ thấy nó bằng cách sử dụng firebug. Với json trong tay bạn có thể sử dụng jQuery $ .getJSON() ví dụ con mèo trên trang này đã giúp tôi rất nhiều khi bắt đầu: http://api.jquery.com/jQuery.getJSON/ Bạn có thể sao chép nó vào trang của riêng bạn, và nó sẽ sử dụng json, và hình ảnh con mèo ra khỏi trang web flicker, cho phép bạn làm việc với json mà không cần một máy chủ. – Quaternion