Aller au contenu

Liste déroulante avec les données


Myze

Messages recommandés

Bonjour,

Je viens vers vous car je dois modifier l'affichage d'une page web.

En effet le code oû se trouve l'objet en question et en java. Malheureusement je n'ai pas de grandes connaissances en dev.

La fenêtre contient actuellement un champ à remplir (Nom:) et cliquer sur rechercher pour avoir le résultat le plus proche dans une liste, ou la liste compléte des possibilités (26). On souhaiterait que la liste déroulante apparaisse directement et que l'on est plus à taper la recherche.

Merci d'avance

Voici la page en page:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="true"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%><%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%><%@ taglib uri="wvs-tags" prefix="wvs"%><jsp:useBean id="geowtUserSession" class="com.imagis.geowt.core.server.GeoWTUserSession" scope="page">	<jsp:setProperty name="geowtUserSession" property="session" value="${pageContext.session}" /></jsp:useBean><c:if test="${empty geowtUserSession.profile}">	<c:redirect url="/jsp/error.jsp">		<c:param name="error">Pas de profil</c:param>	</c:redirect></c:if><sql:setDataSource dataSource="jdbc/wvsDatabase" /><c:set var="step" value="${param.step}" /><c:set var="f_commune_nom" value="${param.f_commune_nom}" /><c:if test="${(step>=1)}">	<c:choose>		<c:when test="${empty f_commune_nom}">			<sql:query var="communesRecordset" sql="SELECT GID, NOM, CODCOMM FROM COMMUNE ORDER BY NOM" />		</c:when>		<c:otherwise>			<sql:query var="communesRecordset" sql="SELECT GID, NOM, CODCOMM FROM COMMUNE WHERE (Upper(NOM) LIKE ?) ORDER BY NOM">				<sql:param>${fn:toUpperCase(f_commune_nom)}%</sql:param>			</sql:query>		</c:otherwise>	</c:choose>	<c:if test="${communesRecordset.rowCount==1}">		<c:set var="f_commune_codcomm" value="${communesRecordset.rows[0].codcomm}" />		<c:if test="${step<=2}"><c:set var="step" value="2" /></c:if>	</c:if></c:if><html>	<head>		<meta http-equiv="content-type" content="text/html; charset=UTF-8">		<title>Localisation de Commune</title>		<c:import url="/jsp/header.jsp" />		<script type="text/javascript">			jQuery.noConflict();			jQuery(document).ready(function(){				bindForm(jQuery('#theForm'));								jQuery('#theForm select').selectEmpty();								jQuery("#f_communes_uid").change(function() {					localiseOn('Communes', "GID="+jQuery(this).val());				});						if(jQuery('#f_communes_uid option').length==1){					localiseOn('Communes', "GID="+jQuery("#f_communes_uid").val());				}			});		</script>	</head>	<body>		<form id="theForm" method="post">			<fieldset>				<legend>Commune</legend>				<div class="field">					<label for="f_commune_nom">Nom : </label>					<input id="f_commune_nom" name="f_commune_nom" type="text" value="${f_commune_nom}" class="{validate:{required:false, minlength:0}}" />					<input type="button" class="submit" onClick="submitStep(1);" value="Rechercher" />				</div>				<c:if test="${step>=1}">					<c:choose>						<c:when test="${communesRecordset.rowCount==0}">							<div class="imagis-warn-message">Aucune Commune correspondante</div>						</c:when>						<c:otherwise>							<div class="field">								<label for="f_communes_uid">Communes : </label>								<select id="f_communes_uid" name="f_communes_uid">									<c:forEach var="communeRecord" items="${communesRecordset.rows}">										<option value="${communeRecord.GID}">${communeRecord.nom}</option>									</c:forEach>								</select>							</div>						</c:otherwise>					</c:choose>				</c:if>			</fieldset>		</form>	</body></html>
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Ca fait bien longtemps que je ne programme plus (à part pour m'amuser ou me faire des petits outils à la con), mais bon le web c'est toujours en mode déconnecté (i.e. c'est le client qui doit appeler le serveur).

Donc faut que tu aies un événement qui envoie au serveur ce que tu tapes. Si j'ai bien compris tu voudrais qu'au fur et à mesure que tu tapes des lettres, ça te filtre les possibilités et te les affiche dans un select.

Perso, j'aurais fait un input text où tu commences à taper (à voir combien de lettres mini tu veux avant de lancer la recherche car niveau perf ça bouffe pas mal et si tu ramènes une liste de 10 000 possibilités, ce n'est pas très efficient) et un select à côté qui vient donc avec la liste des possibilités suivant ce que tu as tapé.

De mémoire, tu utilises un httprequest pour filer ce que tu as tapé à ton serveur et récupérer le résultat (i.e. la liste qui correspond aux possibilités) et tu mets à jour les options de ton select en javascript.

Clair? :)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...