Запрос 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, время: 11:07. |