Guest laurent2004 Posté 1 Septembre 2005 Posté 1 Septembre 2005 Bonjour à tous, J'ai un petit script qui fonctionne bien sous IE mais pas avec FF et Netscape. Mon code (en php): echo "<input type=text name='nbnuit[]' size=1 maxlength=2 value=".$row['nbnuit']." onmouseover='this.focus()' onmouseout='submitform()'>"; après mon formulaire j'ai çà: <script language="JavaScript"> function submitform() { document.myform.submit(); } </SCRIPT> Je voudrais que quand la souris quitte le champs 'nbnuit' çà valide le formulaire automatiquement grâce à onmouseout. Sous Firefox le formulaire est validé dès que la souris passe sur le champs ce qui fait qu'on a aucune chance de pouvoir changer la valeur. Comment faire fonctionner onmouseout avec Firefox? Merci pour votre aide
ar0s78 Posté 1 Septembre 2005 Posté 1 Septembre 2005 le probleme de ce genre de script est que si l'utilisateur balade sa souris, et s'il passe dessus ca donne le focus et quand il sors du champ ca va envoyer le formulaire vide. Sinon pour envoyer le formulaire essaye plutot avec un onBlur (perte du focus)
ar0s78 Posté 1 Septembre 2005 Posté 1 Septembre 2005 essaye avec ca : echo "<input type=text name='nbnuit[]' size=1 maxlength=2 value=".$row['nbnuit']." onmouseover='this.focus();' onmouseout='if(document.myform.nbnuit[].value!=\'\'){document.myform.submit();}'>";
Guest laurent2004 Posté 1 Septembre 2005 Posté 1 Septembre 2005 salut, merci pour ton aide,j'ai essayé avec onBlur mais çà ne marche pas car plus loin dans ma page j'ai un drop down menu et si l'utilisateur clique directement dessus çà plante. J'ai essayé avec ton 2e script et là çà ne marche pas même sur IE.
ar0s78 Posté 1 Septembre 2005 Posté 1 Septembre 2005 Le probleme venait des ' remplace les par des \" par contre pour le champs j'utilise son numéro, car je ne sais pas si le nom avec les [] passe. Essaye toujours. En tout cas j'ai essayer ce bout de script la et ca passe sur IE et Firefox <? echo "<input type=text name=\"nbnuit[]\" size=1 maxlength=2 value=\"\" onMouseOver=\"this.focus();\" onMouseOut=\"if(document.myform.elements[0].value != ''){document.myform.submit();}\">"; ?>
Guest laurent2004 Posté 1 Septembre 2005 Posté 1 Septembre 2005 ca refonctionne sous IE mais çà me fait pareil sous Firefox impossible de faire fonctionner le onmouseout, çà valide le formulaire sur le onmouseover. J'ai remis ton code en enlevant le[0] de elements sinon çà ne marchait pas: echo "<input type=text name=\"nbnuit[]\" size=1 maxlength=2 value=".$row['nbnuit']." onMouseOver=\"this.focus();\" onMouseOut=\"if(document.myform.elements.value != ''){document.myform.submit();}\">";
ar0s78 Posté 1 Septembre 2005 Posté 1 Septembre 2005 la c normal ca ne marche pas. en fait dans le cas présent, le [0] specifie l'index de ton controle dans le formulaire. Donc si ton controle est le 4 eme, il aura un index a 3. Remet le [0] et donne lui le bon index. Si c'est le premier du formulaire myform --> Index = 0 Si c'est le second element du formulaire myform --> Index = 1 etc.
Guest laurent2004 Posté 2 Septembre 2005 Posté 2 Septembre 2005 j'ai rééssayé avec l'index [0] mais çà marche toujours pas sous FF
ar0s78 Posté 2 Septembre 2005 Posté 2 Septembre 2005 envoi le code de ta page... ou tout du moins ce qu'il y a entre les balises <FORM name="myForm"> et </FORM>
Guest laurent2004 Posté 5 Septembre 2005 Posté 5 Septembre 2005 (modifié) ok voilà ce que j'ai dans mon formulaire, l'idée est que l'on puisse changer le nombre de nuits par un onmouseout en sachant qu'il y a aussi un drop down menu qui prevalide le formulaire <form name="myform" method="post" action=<? $_SERVER['PHP_SELF']?>><table class=table bordercolor=black border=1 cellpadding=5 cellspacing=2 cols=7 width=700><?global $dbServer, $dbUser, $dbPass, $dbName;$cxn = _AT_ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);$result = mysql_query("select * from dates order by id asc");echo "<tr><td colspan=7>Détail de votre réservation</td></tr>";if(mysql_num_rows($result)==0){echo "<tr><td colspan=7>Vous n'avez pas de réservation en cours</td></tr>";}else{echo "<tr><td>Ref</td><td width=300>Arrivée:</td><td>Nbre de nuits</td><td>Type chambre</td></tr>";while($row = mysql_fetch_assoc($result)) {echo "<tr>";echo "<td>".$row["id"]."<input type='hidden' name='id[]' value='".$row["id"]."'></td>";echo "<td>";$row["stamp"];setlocale(LC_TIME, "french");$date_resa = strftime("%A %d %B %Y",$row["stamp"]);echo ucwords($date_resa);echo "</td><td><input id='nuit' type=text name='nbnuit[]' size=1 maxlength=2 value=".$row['nbnuit']." onmouseover='this.focus()' onmouseout='submitform()'></td>";//echo "</td><td><input type=text name=\"nbnuit[]\" size=1 maxlength=2 value=".$row['nbnuit']." onMouseOver=\"this.focus();\" //onMouseOut=\"if(document.myform.elements.value != ''){document.myform.submit();}\"></td>";//echo "</td><td><div onmouseout='submitform()'> //<input type=text name='nbnuit[]' size=1 maxlength=2 value=".$row['nbnuit']." onmouseover='this.focus()' > //</div></td>";echo "<td>";echo " </td>";echo "<td>";?><? $valeur = $row['type_ch']; $valeur_list = array("","Single","Double","Twin","Triple","Suite"); ?> <select name="type_ch[]" size="1" onChange="submitform()"> <?php foreach ($valeur_list as $var) { $selected = ($var == $valeur) ? " selected" : ""; echo "<option$selected>$var</option>\n"; } ?> </select><?echo "</td>";echo "<td>";echo "</td>";echo '<td> ';echo "</td></tr>"; // FIN WHILE}echo "<tr><td colspan=7 align=center>";echo "<input type='submit' name='submit2' value='Valider'>";echo "</td></tr>";if(isset($_POST['submit2'])||isset($_POST['type_ch'])) { for(; list(, $someValue1 ) = each( $_POST['nbnuit'] ) , list(, $someValue3 ) = each( $_POST['type_ch'] ) , list(, $someValue2 ) = each( $_POST['id'] ) { $update="UPDATE `dates` SET `nbnuit` = $someValue1, `type_ch` = '$someValue3', `nbpers` = '$someValue4', `dates_resa` = '$someValue5' where id=$someValue2"; $updateMe = mysql_query($update) or die(mysql_error()); if($updateMe) { print "<script language=\"JavaScript\">"; print "window.location = '$_SERVER[PHP_SELF]' "; print "</script>"; } }}}?></table></form><script language="JavaScript">function submitform(){ document.myform.submit();}</SCRIPT> [modérateur: merci d'utiliser les codebox pour les longues portions de code ; de ne pas mettre pleins de lignes vides, et ce dans le but de simplifier la lecture] Modifié 7 Septembre 2005 par Loupilo
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant