killkala | Bonjour à tous !
Je sais que de nombreux sujet traite déjà de ma question, mais beaucoup sont en php et en java je ne trouve pas ma réponse.
J'ai déjà une partie de code construit. Et je pense que le problème vient de ma servlet car lorsque je rentre idSelect = (long) 1, il me ressort bien la zone 1 de ma liste. Mais du coup j'ai pas vraiment d'idée !
Je vous montre mon code : (j'ai enlever des grosses partie de mon code qui ne sont pas utile dans mon problème donc ne soyez pas étonné de certaines choses! Cela rend la lecture plus simple)
stationForm.jsp
Code :
- <%@ page pageEncoding="UTF-8" %>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- <!DOCTYPE html>
- <html>
- <head>
- <c:import url="/WEB-INF/includePart/header.jsp">
- <c:param name="title" value="Nouvelle Station"></c:param>
- </c:import>
- </head>
- <body>
- <div class="menuPerso">
- <c:import url="/WEB-INF/includePart/menu.jsp"></c:import>
- </div>
- <form class="form-signin" method="post" action="<c:url value="/station" />">
-
- <h2 class="form-signin-heading">Nouvelle Station</h2>
- <label for="chantier" class="sr-only">Nom du Chantier</label>
- <select class="form-control" id="chantier_id" name="chantier_id" onchange = "listZone();" required autofocus >
- <option id="chantier_id" value="">Chantier</option>
- <c:forEach items="${arrayChantier}" var="chantier">
- <option value="${chantier['chantier_id']}, ${chantier['chantier_name']}">${chantier['chantier_name']}</option>
- </c:forEach>
- </select>
- <span class="error">${form.errors['chantier_name']}</span>
- <br><br>
- <label for="zone" class="sr-only">Nom de la Zone</label>
- <select class="form-control" id="zone_id" name="zone_id" required autofocus>
- <option id="zone_id" value="" >Zone</option>
- <c:forEach items="${arrayZone}" var="zone">
- <option value="${zone['zone_id']}">${zone['zone_name']}</option>
- </c:forEach>
- </select>
- <span class="error">${form.errors['zone_name']}</span>
- <br><br>
-
- <p class="${empty form.errors ? 'succes' : 'error'}">${form.resultat}</p>
- </form>
-
- <script src="<c:url value="/JS/dynamicListForm.js" />"></script>
- </body>
- </html>
|
dynamicListForm.js
Code :
- function getXhr()
- {
- var xhr = null;
-
- if(window.XMLHttpRequest) {
- xhr = new XMLHttpRequest();
- }
- else if(window.ActiveXObject) {
- try {
- xhr = new ActiveXObject("Msxml2.XMLHTTP" );
- } catch (e) {
- xhr = new ActiveXObject("Microsoft.XMLHTTP" );
- }
- }
- else {
- alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest" );
- xhr = false;
- }
- return xhr;
- }
-
- function listZone()
- {
- var xhr = getXhr();
- xhr.onreadystatechange = function() {
- if(xhr.readyState == 4){
- if (xhr.status == 200 || xhr.status == 0) {
- select = xhr.responseText;
- document.getElementById('zone_id').innerHTML = select;
- }
- else {
- alert('Erreur :' +xhr.status + ' '+xhr.statusText);
- }
- }
- };
- xhr.open("GET","/Auscultation/station",true);
- xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
- chantierSelect = document.getElementById('chantier_id');
- idParent = chantierSelect.options[chantierSelect.selectedIndex].value;
- xhr.send(null);
- }
|
AddStationServlet.java
DaoImplZone.java (si ca peut etre utile!)
Code :
- package com.auscult.dao;
- import java.sql.*;
- import java.util.ArrayList;
- import com.auscult.beans.Station;
- import com.auscult.beans.Zone;
- import static com.auscult.dao.DaoTools.*;
- public class DaoImplZone implements DaoZone{
- private static final String SQL_SELECT_WHERE_CHANTIER_ID ="SELECT zone_id, zone_name, x1, y1, x2, y2, x3, y3, chantier_name, last_name "
- + "FROM zone "
- + "INNER JOIN chantier ON zone.FK_chantier_id = chantier.chantier_id "
- + "INNER JOIN user ON chantier.FK_user_id = user.user_id WHERE chantier_id = ?";
- private DAOFactory daoFactory;
- DaoImplZone( DAOFactory daoFactory ) {
- this.daoFactory = daoFactory;
- }
-
-
- @Override
- public ArrayList<Zone> findByChantier ( Long chantier_id ) throws DAOException {
- System.out.println("verifie DaoImplZone findChantier" );
- Connection connexion = null;
- PreparedStatement preparedStatement = null;
- ResultSet resultSet = null;
- ArrayList<Zone> listZone = new ArrayList<Zone>();
- try {
-
- connexion = daoFactory.getConnection();
- preparedStatement = initPreparedRequest( connexion, SQL_SELECT_WHERE_CHANTIER_ID, false, chantier_id );
- resultSet = preparedStatement.executeQuery();
- while ( resultSet.next() ) {
- listZone.add(map(resultSet));
- }
- } catch ( SQLException e ) {
- System.out.println("error sql exception = " + e.getMessage());
- throw new DAOException( e );
- } finally {
- silentClose( resultSet, preparedStatement, connexion );
- }
-
- System.out.println("size"+listZone.size());
- return listZone;
- }
-
- }
|
Lorsque je select un élément de ma liste, il ne retourne rien dans ma deuxieme list (à vrai dire je me suis inspiré de ce forum https://www.developpez.net/forums/d [...] tes-liees/ surtout pour la servlet ^^)
Je vous remercie d'avance Ca fait vraiment un moment que je suis bloqué et je manque de connaissance pour trouvé, so .. HELP MEEE, PLEASE !! ^^ (désolé pour les fautes d'orthographes, on me le reproche souvent!) Message édité par killkala le 02-10-2017 à 10:26:50
|