Запрос sql при выборе значения из списка
Здравствуйте!
У меня есть страница .jsp, размещённая на сервере Glassfish, у которого настроен DataSource к базе данных Firebird. На странице есть списки в таком виде:
<sql:query var="typeOfBoat" dataSource="jdbc/myproject">
select * from test where cc = 0
</sql:query>
<select name="TypeofBoat">
<c:forEach var="row" items="${typeOfBoat.rowsByIndex}">
<c:forEach var="column" items="${row}">
<option>${column}</option>
</c:forEach>
</c:forEach>
</select>
Вопрос в том, как сделать так, чтобы при выборе значения в одном списке, выбранное значение передавалось в запрос следующего списка(в "where cc = ") и второй список заполнялся значениями выполненного запроса(с подставленным значением из предыдущего списка). Например: список 1 - страны, список 2 - города. В первом выбираем "Россия" и во втором списке появляются "Москва, Петербург". Пробовал делать запросы на сервлете, но тогда страница обновляется и значение в первом списке снова сбрасывается. Помогите! Я только осваиваю javascript. Любой помощи буду очень рад! |
java и javascript не одно и то же ;)
|
При выборе значения из списка по событию onchange ты можешь отослать ajax-м выбранное значение, например, как my_param=my_select.value, принять как request.getParameter('my_param'), как вставить туда, куда ты хочешь, не знаю, может быть как выражение <%=request.getParameter('my_param')%>, хотя вряд ли, так как выражение подаётся на вывод, но в скриптлете ты можешь использовать принятое значение, как хочешь, а в такой нотации хз, данными в ответ соответственно должны быть посланы данные запроса к базе, можно их сразу оформить в список (либо делать это потом на клиенте), им и заменить старый список.
|
http://docs.oracle.com/javaee/5/tutorial/doc/bnakc.html
http://stackoverflow.com/questions/1...sp-not-working
<%@ page contentType="text/html;charset=UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="java.util.Locale"%>
<% Locale.setDefault(Locale.ENGLISH); %>
<sql:setDataSource driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:XE"
user="system" password="12345" var="db" />
<sql:query dataSource="${db}" var="typeOfBoat">
SELECT a FROM a_test_table where a=? <sql:param value="${param['my_param']}"/>
</sql:query>
<select name="TypeofBoat">
<c:forEach var="row" items="${typeOfBoat.rowsByIndex}">
<c:forEach var="column" items="${row}">
<option>${column}</option>
</c:forEach>
</c:forEach>
</select>
PS: Читаем доки, учимся гуглить ;) |
Большое спасибо за советы, пример и ссылки! На stackoverflow похоже как раз то, что мне нужно! Буду пробовать!
Выручили! :thanks: |
| Часовой пояс GMT +3, время: 09:08. |