Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрос sql при выборе значения из списка (https://javascript.ru/forum/misc/38108-zapros-sql-pri-vybore-znacheniya-iz-spiska.html)

maxis1523 19.05.2013 19:08

Запрос 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. Любой помощи буду очень рад!

bes 19.05.2013 21:00

java и javascript не одно и то же ;)

bes 19.05.2013 21:18

При выборе значения из списка по событию onchange ты можешь отослать ajax-м выбранное значение, например, как my_param=my_select.value, принять как request.getParameter('my_param'), как вставить туда, куда ты хочешь, не знаю, может быть как выражение <%=request.getParameter('my_param')%>, хотя вряд ли, так как выражение подаётся на вывод, но в скриптлете ты можешь использовать принятое значение, как хочешь, а в такой нотации хз, данными в ответ соответственно должны быть посланы данные запроса к базе, можно их сразу оформить в список (либо делать это потом на клиенте), им и заменить старый список.

bes 20.05.2013 22:49

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: Читаем доки, учимся гуглить ;)

maxis1523 22.05.2013 14:48

Большое спасибо за советы, пример и ссылки! На stackoverflow похоже как раз то, что мне нужно! Буду пробовать!

Выручили! :thanks:


Часовой пояс GMT +3, время: 11:07.