IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] [Struts] Pas d'affichage des boutons lors du raffraîchissement


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut [AJAX] [Struts] Pas d'affichage des boutons lors du raffraîchissement
    Salut à tous!

    J'ai un petit souci d'affichage avec Ajax :
    Je rafraichis le "div" suivant grâce à Ajax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id = "divUpdateResultSearch">
    	<%@ include file="searchControlResult.jsp" %>
    	<script>
    		initDataElement()
    	</script>
    </div>
    voici le code de ma jsp qui est incluse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <c:if test="${sessionScope.searchResult!=null}">
    <br><br> 
    	<table>
    		<tr>
    			<td>
    			<c:forEach var="resultat" items="${sessionScope.searchResult}">
    		    	<div  class="recherche">
    		    	    <h3 class="resultatnom"><center><c:out value="${resultat.name}"/></center></h3>
    		    		<table>
    		    		<c:forEach var="field" items="${resultat.fields}">
    		  				<tr>
    		  					<td> 
    		  						<c:out value="${field.name}"></c:out>
    		  					</td>
    							<td>
    								<table class="resultatfield">
    									<tr>
    		  							<c:forEach var = "valeur" items="${field.values}">
    		  								<td>
    		  									<c:out  value="${valeur}"></c:out>
    										</td>
    	  								</c:forEach>
    									</tr>
    								</table>
    							</td>
    						</tr>
    					</c:forEach>
    		    		</table>
    		    	</div>
    			</c:forEach>
    			</td>
    			<td valign="top">
    				<table>
    					<tr>
    						<center>
    							<td><h4 class="titre"><bean:message key="search.manageElement"/></h4></td>
    							<td></td>
    						</center>
    					</tr>
    					<%
    						// get the ApiIdex
    						ApiIdexAnne apiIdex =ApiIdexAnne.getInstance();
    						//ArrayList list = apiIdex.getLabelCommandEnabledOnElement(session.getAttribute("idElement").toString());
    						ArrayList list = apiIdex.getCommandEnabledOnElement(session.getAttribute("idElement").toString());
    						System.out.println("JSP update => size = "+list.size());
    						for(int i=0;i<list.size();i++){
    							TupleCommandParam tupleCommad = (TupleCommandParam)list.get(i);
    							System.out.println("JSP update => boucle = "+i+"   command = "+tupleCommad.getLabelCommand());
    					%>
    					<tr>
    						
    					<%	
    						if(tupleCommad.getParametersFacultatives()!=null && ((ArrayList)tupleCommad.getParametersFacultatives()).size()!=0){
    					%>
    						<html:form action= "/searchControl">
    						<center>
    						<td align="center">
    							<button type="submit" class="commande" onclick="testValueNotNull(this);" >
    								<span class="commandetexte"><%=tupleCommad.getLabelCommand()%></span>
    							</button>
    						</td>
    						<td>
    							<html:hidden property="whatToDo" value="command"/>
    							<html:text property="paramFacultative" value=""/>
    							<html:hidden property="idCommand" value="<%=tupleCommad.getIdCommand()%>"/>
    						</td>
    						</center>
    						</html:form>
    						
    					<%	
    						} else {
    					%>
    						<html:form action= "/searchControl" >
    						<center>
    						<td align="center">
    							<button type="submit" class="commande" onclick="submit()" >
    								<span class="commandetexte"><%=tupleCommad.getLabelCommand()%></span>
    							</button>
    						</td>
    						<td>
    							<html:hidden property="whatToDo" value="command"/>
    							<html:hidden property="idCommand" value="<%=tupleCommad.getIdCommand()%>"/>
    						</td>
    						</center>
    						</html:form>
    					<%}%>
    					</tr>
    					<%}%>
    				</table>
    			</td>
    		</tr>
    	</table> 
    </c:if>
    Voici mon code js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    var refreshDataElement = 5000 ; //Période de mise à jour des données, en milisecondes.
    var requestDataElement = null; // Objet XMLhttpRequest  necessaire pour récupérer les données.
    var dataElement = null;
    var getDataElementTimeoutId = null;
    /*
     * initialisation de recuperation periodiique des events
     */
    function initDataElement()
    {
    	getDataElementTimeoutId=setTimeout("getDataElement()",2000);
    }
     
    /*
     * demande de recuperation des alamres
     */
    function getDataElement()
    {
    	//Creation de l'instance de XMLhttpRequest en fonction du navigateur
    	if (window.XMLHttpRequest)     // Objet de la fen?tre courant
    	{
    		  requestDataElement = new XMLHttpRequest();     // Firefox, Safari, ...
           //  requestImage.overrideMimeType('text/xml');
    	}
    	else
    	if (window.ActiveXObject)   // Version Active
    	{
    		  requestDataElement = new ActiveXObject("Microsoft.XMLHTTP");    // Internet Explorer
    	}
    	//Preparation et envoie de la requete
    	requestDataElement.onreadystatechange=xmlHttpHandler_processXML;
    	requestDataElement.open("GET", "searchControlResult.do", true);
    	requestDataElement.setRequestHeader("Cache-Control","no-store"); //Pour ne pas mettre en cache le resultat, sinon apres, il refait jamais de requetes...
    	requestDataElement.setRequestHeader("Pragma","no-cache");
    	requestDataElement.send(null);    //(a enlever)
     
    	//Attente de la nouvelle mise a jour
    	getDataElementTimeoutId=setTimeout("getDataElement()",refreshDataElement);
    }
     
    /*
     * fonction appelee a chaque changement d'etat de la requete
     */
    function xmlHttpHandler_processXML()
    {
    	if (requestDataElement.readyState==4) //etat = 4 sigifie que la reponse est arrivee
    	{
    		if (requestDataElement.status == 200 ) //reponse correct
    		{
    			dataElement=requestDataElement.responseText;
    			replaceDataElement();
    		}
    		else
    		{
    			alert("FICHIER MAL RECU : \n voila le contenu : \n"+ requestDataElement.responseText);
     
    		}
    	}
    }
     
    /*
     * remplace les anciennes valeurs par les nouvelles
     */
    function replaceDataElement()
    {
    	emplacementDataElement=window.document.getElementById("divUpdateResultSearch");
    	emplacementDataElement.innerHTML = dataElement;
     
    }
    Mon souci est le suivant :
    La partie en gras dans la jsp incluse dans le div que je rafraichis ne se met pas à jour sur la page :
    Je devrais avoir normalement des boutons (par l'utilisation de la stylesheet) avec marqué dessus les trucs que je récupère en java.
    Or avec des tests en mettant des system.out.println() dans mon codes java qui se trouve dans ma jsp, je vois bien que normalement il devrait y avoir des commandes affichées ce qui n'est pas le cas....

    A tout hasard, voici le code de la css qui correspond à la partie des boutons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    /*Classe pour les boutons des commandes*/
    .commande{
     background:#ffffff url(buttonCommand.png) repeat-x bottom left;
     padding:5px 5px 5px 5px;
     border:none;
     height: 55px;
     width:260px;
    }
    /*Classe pour le texte des bouton*/
    .commandetexte{
    font-family: Verdana, Arial, Helvetica, Geneva, sans-serif;
    font-style:bold;
    color:  #660099;
    font-size: 12pt ;
    margin-left : 5px;
    margin-right : 5px;
    margin-bottom : 5px;
    }
    Quelqu'un a une idée?
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    J'ai fait queques tests....qui ne m'ont pas fait plus comprendre d'ou vient le problème...Mais bon, ca m'aide pas vraiment....

    J'ai un truc assez bizarre en fait : j'ai fait affiché le code source de la page une fois le premier rafraichissement passé (c'est rapide : boutons disparus = premier rafraichissement fait lol)....Dans le code source, les bouton y sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <td><div id = "divUpdateResultSearch">
    	<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <br><br> 
    	<table>
    		<tr>
    			<td>
    		    	<div  class="recherche">
    		    	    <h3 class="resultatnom"><center>X231</center></h3>
    		    		<table>
    		  				<tr>
    		  					<td> 
    		  						Pression
    		  					</td>
    							<td>
    								<table class="resultatfield">
    									<tr>
    		  								<td>
    		  									10 Pa
    										</td>
    									</tr>
    								</table>
    							</td>
    						</tr>
    		  				<tr>
    		  					<td> 
    		  						Valeur
    		  					</td>
     
    							<td>
    								<table class="resultatfield">
    									<tr>
     
    		  								<td>
    		  									215 
    										</td>
     
    									</tr>
    								</table>
    							</td>
    						</tr>
    		  				<tr>
    		  					<td> 
    		  						Etat
    		  					</td>
    							<td>
    								<table class="resultatfield">
    									<tr>
    		  								<td>
    		  									Ouvert 
    										</td>
    									</tr>
    								</table>
    							</td>
    						</tr>
    		    		</table>
    		    	</div>
    			</td>
    		<tr>
    	</table>
    	<table>
    		<tr>
    			<td valign="top">
    				<table>
    					<tr>
    						<center>
    							<td><h4 class="titre">Commander l'Element</h4></td>
    							<td></td>
    						</center>
    					</tr>
    					<tr>
    						<form name="SearchControlForm" method="post" action="/WebIma/searchControl.do">
    						<center>
    						<td align="center">
    							<button type="submit" onclick="submit()" >
    								ouvrir
    							</button>
    						</td>
    						<td>
    							<input type="hidden" name="whatToDo" value="command">
    							<input type="hidden" name="idCommand" value="OUVRIR">
    						</td>
    						</center>
    						</form>
    					</tr>
    					<tr>
    						<form name="SearchControlForm" method="post" action="/WebIma/searchControl.do">
    						<center>
    						<td align="center">
    							<button type="submit" onclick="testValueNotNull(this);" >
    								donner consigne pression
    							</button>
    						</td>
    						<td>
    							<input type="hidden" name="whatToDo" value="command">
     
    							<input type="text" name="paramFacultative" value="">
    							<input type="hidden" name="idCommand" value="DONNER_CONSIGNE_PRESSION">
    						</td>
    						</center>
    						</form>
    					</tr>
    				</table>
    			</td>
    		</tr>
    	</table> 
    	<script>
    		initDataElement()
    	</script>
    </div>
    Mais :
    1. Ils n'apparaissent pas sur la page dans mon navigateur
    2. Si je fais "enregistrer la page sous" à partir de la page du code source, ils ne sont pas enregistrés.
    3. Si je fais un copier coller du code source de la page dans un nouveau fichier, pas de problème, les bouton s'affichent...



    Je craaaaaahk!
    Help please!
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    Bon, j'ai résolu le problème en remplacant le truc en gras de la jsp par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <td valign="top">
    				<table>
    					<tr>
    						<center>
    							<td><h4 class="titre"><bean:message key="search.manageElement"/></h4></td>
    							<td></td>
    						</center>
    					</tr>
    					<%
    						// get the ApiIdex
    						ApiIdexAnne apiIdex =ApiIdexAnne.getInstance();
    						//ArrayList list = apiIdex.getLabelCommandEnabledOnElement(session.getAttribute("idElement").toString());
    						ArrayList list = apiIdex.getCommandEnabledOnElement(session.getAttribute("idElement").toString());
    						for(int i=0;i<list.size();i++){
    							TupleCommandParam tupleCommad = (TupleCommandParam)list.get(i);
    							out.print("<tr>");
    							if(tupleCommad.getParametersFacultatives()!=null && ((ArrayList)tupleCommad.getParametersFacultatives()).size()!=0){
    								out.println("<center>");
    								out.println("<td align=\"center\">");
    								out.println("<button type=\"submit\" class=\"commande\" onclick=\"commandWithParam('"+tupleCommad.getIdCommand()+"');\" >");
    								out.println("<span class=\"commandetexte\">"+tupleCommad.getLabelCommand()+"</span>"); 
    								out.println("</button>");
    								out.println("</td>");
    								out.println("<td>");
    								out.println("<input type=\"text\" name=\"paramFacultative_"+tupleCommad.getIdCommand()+"\">");
    								out.println("<input type=\"hidden\" name=\"idCommand\" value=\""+tupleCommad.getIdCommand()+"\">");
    								out.println("</td>");
    								out.println("</center>");
    							} else {
    								out.println("<center>");
    								out.println("<td align=\"center\">");
    								out.println("<button type=\"submit\" class=\"commande\" onclick=\"commandWithoutParam('"+tupleCommad.getIdCommand()+"');\" >");
    								out.println("<span class=\"commandetexte\">"+tupleCommad.getLabelCommand()+"</span>");
    								out.println("</button>");
    								out.println("</td>");
    								out.println("<td>");
    								out.println("<input type=\"hidden\" name=\"idCommand\" value=\""+tupleCommad.getIdCommand()+"\">");
    								out.println("</td>");
    								out.println("</center>");
    							}
    						out.print("</tr>");
    						}%>
    				</table>
    			</td>
    Maintenant ca imprime nickel, le seul souci c'est pour récupérer les valeurs des différents champs.....ceux que saisi l'utilisateur et pour récupérer le bouton sur lequel il a appuyé.....M'enfin, ca devrait aller je vais trouver comment faire.....

    Voilà.....
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pas d'affichage des valeurs nulles avec un COUNT
    Par phoenixz22 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 30/05/2007, 18h39
  2. [Swing][ListCellRenderer]Pas d'affichage des composants
    Par Cyberwan dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 08/02/2006, 00h22
  3. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25
  4. Affichage des boutons d'un TDBNavigator
    Par AlexB59 dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/12/2005, 22h28
  5. Modification du caption des boutons lors d'un onBeforeUnload
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/08/2005, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo