France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
23 592 membres enregistrés - 1 913 531 posts - 99 192 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           liste déroulante et ajax
33 connectés(record : 272 le 28 octobre 2008 - 04 h 23)

Vous devez vous connecter pour répondre au topic.
liste déroulante et ajax

betux
Coordinateur
testis ...

Messages : 2 853
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 29 mars 2008 - 12 h 37 m 02 s
j'ai une fonction javascript qui à la sélection d'un article me ramène le prix.
Ca marche très bien à un détail pret c'est que moi j'ai trouvé onchange mais à l'init comment on fait ? le onload il est ou ?? :D



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

Woofy
Pour les bons tuyaux me demander

Messages : 26 579
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 29 mars 2008 - 13 h 47 m 21 s
Dans le body ?



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


betux
Coordinateur
testis ...

Messages : 2 853
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 29 mars 2008 - 14 h 25 m 45 s
marche pas :hot:



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

betux
Coordinateur
testis ...

Messages : 2 853
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 29 mars 2008 - 14 h 35 m 17 s
    Code     
  1. 
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Insertion/Modification Achat</title>
  7. <link href="../style.css" rel="stylesheet" type="text/css" />
  8. 
  9. <script type="text/javascript" language="javascript">
 10.  
 11.  /// verification si quantité
 12.  
 13.    function Verif(nForm)
 14.     {
 15. 	 var form_err = "Il manque : ";
 16. 	 
 17. 
 18. var x=document.getElementById('quantite').value
 19. var anum=/(^\d+$)|(^\d+\.\d+$)/
 20. if (anum.test(x))
 21. testresult=true
 22. else{
 23. testresult=false
 24. form_err += "la quantité. ";
 25. }
 26. 
 27. 
 28. if ( form_err != "Il manque : ") {
 29. alert(form_err);
 30.  return false;
 31. }
 32. else
 33. {
 34.  return true;
 35. }
 36.    }
 37.    
 38.    /// selection du prix lors du choix de l'article
 39.    
 40.   function ajaxFunction(){
 41. 	var ajaxRequest;  // The variable that makes Ajax possible!
 42. 	
 43. 	try{
 44. 		// Opera 8.0+, Firefox, Safari
 45. 		ajaxRequest = new XMLHttpRequest();
 46. 	} catch (e){
 47. 		// Internet Explorer Browsers
 48. 		try{
 49. 			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
 50. 		} catch (e) {
 51. 			try{
 52. 				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
 53. 			} catch (e){
 54. 				// Something went wrong
 55. 				alert("Your browser broke!");
 56. 				return false;
 57. 			}
 58. 		}
 59. 	}
 60. 	// Create a function that will receive data sent from the server
 61. 	ajaxRequest.onreadystatechange = function(){
 62. 		if(ajaxRequest.readyState == 4){
 63. 			var ajaxDisplay = document.getElementById('ajaxDiv');
 64. 			ajaxDisplay.innerHTML = ajaxRequest.responseText;
 65. 		}
 66. 	}
 67. 	var choix = 1;
 68. 	var article = document.getElementById('article').value;
 69. 	var queryString = "?article=" + article+ "&choix=" + choix;
 70. 	ajaxRequest.open("GET", "ex_ajax.php" + queryString, true);
 71. 	ajaxRequest.send(null); 
 72. } 
 73. 
 74. 
 75. /// calcul du prix
 76. 
 77. function displaysum()
 78. {
 79. var operand1 = parseFloat(document.getElementById('quantite').value);
 80. var operand2 = parseFloat(document.getElementById('prix').value);
 81. var sum = 0;
 82. sum = operand1 * operand2;
 83. document.getElementById('targetDiv').innerHTML =
 84. sum;
 85. }
 86.    
 87. </SCRIPT>
 88. 
 89.  <?php
 90.     include '../control.inc';
 91.     include 'select_achat.inc';	
 92. 	?>
 93. 
 94.         
 95. </head>
 96. 
 97. <body>
 98. <form id="form1" name="insert_achat" method="post" action="InsUpd_achat.php" onload="ajaxFunction();" onsubmit="return Verif(this);">
 99. 
100. <div id="container">
101. 
102. <div id="header"><h1>Etablissement LATITUDE</h1></div>
103. 
104. <div id="sub_header">... Le hasard et la fourmie</div>
105. 
106. <div id="main_content_top"></div>
107. 
108. <div id="main_content">
109. 
110. <div class="content">
111. <h2>Insertion/Modification Achat</h2>
112. 
113. 
114. 
115. <table width="200" border="0">
116.   <tr>
117.     <td>&nbsp;</td>
118.     <td><label>
119.       <input type="hidden" name="iid" id="iid" value="<?php echo $row["id_achat"]; ?>" />
120.     </label></td>
121.     </tr>
122.   <tr>
123.     <td>Client</td>
124.     <td><label>
125.   <?php
126.   
127.   //alimentation liste deroulante client
128.   
129.  $sql_select_client = "SELECT numero, nom FROM clients ORDER BY nom ASC";
130.  $res_select_client = mysql_query($sql_select_client) or die ("Erreur sur la requête <i>$sql_select_client</i> : <br/>" . mysql_error());
131.   
132.  
133.   if (mysql_num_rows($res_select_client))
134. 
135.  {
136.   echo '<select name="client" id="client">';
137.      while ($client = mysql_fetch_assoc($res_select_client))
138.     {
139. 		
140.          if ($row['id_client']==$client['numero']) 
141. 		 {
142. 		 echo '<option value="' . $client['numero'] .'"selected>'. $client['nom'] .'</option>';		
143. 		 }
144. 		 else
145. 		 {
146. 		  echo '<option value="' . $client['numero'] .'">'. $client['nom'] .'</option>';		 
147. 	 }
148. 		 
149. 			
150. 	/*  if ($row['id_client']==$client['numero']) $selected = " selected=\"selected\"";
151.         echo <option value=\"" . $client['numero'] . "\"$selected>" . $client['nom'] . "</option>";
152.      */	
153. 	
154. 	 }
155.      echo "</select>";
156.  }
157. 
158.   ?>  
159.     
160.     </label></td>
161.     </tr>
162.   <tr>
163.     <td>Article</td>
164.     <td><label>
165.     
166.     <?php
167. 	
168.  $sql_select_article = "SELECT reference,nom FROM articles ORDER BY nom ASC";
169.  $res_select_article = mysql_query($sql_select_article) or die ("Erreur sur la requête <i>$sql_select_article</i> : <br/>" . mysql_error());
170.   
171.   if (mysql_num_rows($res_select_article))
172. 
173.  {
174. 
175.   echo '<select name="article" id="article" onchange="ajaxFunction()">';
176.      while ($article = mysql_fetch_assoc($res_select_article))
177.     {
178. 	
179. 	 //alimentation liste deroulante article	
180. 		
181. 	
182.    if ($row['id_article']==$article['reference']) 
183. 		 {
184. 		 echo '<option value="' . $article['reference'] .'"selected>'. $article['nom'] .'</option>';		
185. 		 }
186. 		 else
187. 		 {
188. 		  echo '<option value="' .  $article['reference'] .'">'. $article['nom']  .'</option>';	
189. }
190.      }
191.      echo "</select>";
192.  }
193. 
194.   ?>      
195.     
196.     </label></td>
197.     </tr>
198.   <tr>
199.     <td>Prix Unitaire</td>
200.     <td><div id='ajaxDiv'></div></td>
201.   </tr>
202.   <tr>
203.     <td>Quantité</td>
204.     <td><label>
205.       <input type="text" name="quantite"  id="quantite" value="<?php echo $row["quantite"]; ?>" size="4"  maxlength="4"/>
206.     </label></td>
207.     </tr>
208.   <tr>
209.     <td>Prix Total</td>
210.     <td><div id="targetDiv"></div></td>
211.     </tr>
212.   <tr>
213.     <td><input type="button" name="calculate" id="calculate" value="Calculer" onclick="displaysum();"/></td>
214.     <td><input type="submit" name="save" id="save" value="Enregistrer" onclick="return Verif(this);"/></td>
215.     </tr>
216. </table>
217. 
218. 
219. </div>
220. 
221. <div class="menu">
222. 
223. <?php 
224. 
225. /* menu */
226. include '../menu.inc';	
227. ?>
228. 
229. </div>
230. 
231. <div id="clear"></div>
232. 
233. </div>
234. 
235. <div id="main_content_bottom">
236. </div>
237. 
238. <div id="footer">
239. <?php
240. session_start();
241. echo $_SESSION['who'];
242. ?>
243. </div>
244. 
245. </div>
246. 
247. </form>
248. </body>
249. </html>
250. 



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

moinal


Messages : 133
Inscrit le 12/03/05
Ville : Aix en provence
Non connecté
  Posté le 29 mars 2008 - 18 h 20 m 33 s
<body onLoad="ajaxFunction();" >

Ou, en mieux car pas de js dans le body :

window.onload = function() {

}

Tu peux aussi utiliser une librairie qui gère le ondomready, ça évite d'attendre que toute la page soit chargée (mais seulement le DOM) avant de déclencher le bazar (avec mootools, jquery ça doit être intégré par exemple)





betux
Coordinateur
testis ...

Messages : 2 853
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 30 mars 2008 - 10 h 19 m 20 s
hello moinal,

je viens de passer mes pages au w3c et en fait en xhtml strict il n'y a pas de onload ds le body.
Donc j'optionne la deuxième option.

merci. :yes:



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

betux
Coordinateur
testis ...

Messages : 2 853
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 30 mars 2008 - 10 h 28 m 50 s
grrr passe pas.

j'ai mis ça ds mon javascript window.onload = ajaxFunction;

Mais j'ai comme ds l'idée que la liste déroulante n'est pas encore initialisé.

Pour ceux qui sont interessé un article : http://www.babylon-design.com/site/index.php/2006/11/30/155-eviter-conflit-javascript-window-onload



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

betux
Coordinateur
testis ...

Messages : 2 853
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 30 mars 2008 - 19 h 08 m 26 s
ça marche mais en fait il faut le mettre à la fin de son javascript. :hello:



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

Page genérée en 1.0117 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory