Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1612 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de rafraichissement d'une liste déroulante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de rafraichissement d'une liste déroulante

n°1402969
Rabbit14
Posté le 08-07-2006 à 17:48:44  profilanswer
 

Hello à tous.
Premier post ici en espérant y trouver une réponse. Voilà, je viens de me faire un formulaire d'envoie de mail sur une feuille PHP. La composition et l'envoi de mail marche bien  pas de soucis. Je voudrai juste ajouter un peu de souplesse et faire en sorte que la liste déroulante ou l'on peut choisir le destinataire se mette à jour suivant un argument passé dans l'URL.
 
En étant bref :
 
Lorsque l'url est : http://[xxx]/mailme.php?contact=JB
La liste déroulante se positionne sur JB
 
Lorsque l'url est : http://[xxx]/mailme.php?contact=Webmaster
La liste déroulante se positionne sur Webmaster
 
Tout cela marche bien sous IE mais pas sur Firefox.
Si quelqu'un a une idée je suis largement preneur.
 
 
 
Voici mon code :
 

Code :
  1. <html>
  2. <head>
  3. <title>Document sans titre</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="JavaScript" type="text/JavaScript">
  6. function JBSelectContact(name) {
  7. var obj=document.getElementById("dest" );
  8. if (obj)
  9.  obj.value=name;
  10. }
  11. </script>
  12. </head>
  13. <?
  14. //Test is the variable contact is set
  15. if (!isset($contact))
  16. {
  17. $contact="Webmaster";
  18. }
  19. ?>
  20. <body bgcolor="#000000" text="#FFFFFF" onload= <? echo "JBSelectContact('". $contact ."')" ?> >
  21. <div align="center">
  22.   <h1>Contact </h1>
  23.   <p>&nbsp;</p>
  24.   <p align="center">Merci de bien vouloir utiliser le formulaire ci-dessous pour
  25.     nous contacter. Votre message sera aiguill&eacute; vers la bonne personne
  26.     qui vous r&eacute;pondra dans les plus bref d&eacute;lais.</p>
  27.   <p align="left">&nbsp;</p>
  28.   <form name="form1" method="post" action="envoi.php">
  29.     <p>&nbsp;</p>
  30.     <table width="90%" border="0">
  31.       <tr>
  32.         <td width="150" nowrap>Votre Adresse eMail :</td>
  33.         <td> <input name="emit" type="text" size="50"></td>
  34.       </tr>
  35.       <tr>
  36.         <td width="150" nowrap>Destinataire :</td>
  37.         <td><select name="dest">
  38.             <option value='Webmaster'>Webmaster</option>
  39.             <option value='JB'>JB</option>
  40.           </select>
  41.         </td>
  42.       </tr>
  43.       <tr>
  44.         <td width="150" nowrap>Sujet :</td>
  45.         <td> <input name="subject" type="text" size="100"></td>
  46.       </tr>
  47.       <tr>
  48.         <td width="150" nowrap>
  49.           <label>Votre message :</label> </td>
  50.         <td><textarea name="text" cols="100" rows="10"></textarea></td>
  51.       </tr>
  52.       <tr>
  53.         <td width="150" nowrap>&nbsp;</td>
  54.         <td><div align="center">
  55.             <input type="submit" name="Submit" value="Envoyer">
  56.             <input name="Cancel" type="reset" id="Cancel2" value="Annuler">
  57.           </div></td>
  58.       </tr>
  59.     </table>
  60.     <p>
  61.       <label> </label>
  62.     </p>
  63.   </form>
  64.   <p>&nbsp;</p>
  65. </div>
  66. </body>
  67. </html>


 

mood
Publicité
Posté le 08-07-2006 à 17:48:44  profilanswer
 

n°1403551
Rabbit14
Posté le 10-07-2006 à 09:59:37  profilanswer
 

Personne pour me proposer une idée ????
:'(

n°1403555
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-07-2006 à 10:04:07  profilanswer
 

si :o
Tu ne "dois" pas pouvoir changer directement la value d'un select sous FF ( je suppose j'ai pas vérifié hein!).
Du coup tu vas être obligé de boucler sur toutes les options de ton select et de mettre selected à celle dont la valeur correspond.

n°1403562
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 10:18:22  profilanswer
 

Déjà, moi je vois deux trucs :
 
1/ le premier, c'est que ça me semble un peu chelou comme t'as voulu faire, à mélanger du PHP et du JS
2/ tu peux le faire 100% en JS, ou 100% en PHP. Etant donné que le support du PHP est garanti mais pas celui du JS, la question ne se pose pas.
 
Tu fais donc :
 

Code :
  1. <td><select name="dest">
  2.   <option value='Webmaster'<?("Webmaster" == $contact)?echo(" selected=\"selected\"" );?>Webmaster</option>
  3.   <option value='JB'<?("JB" == $contact)?echo(" selected=\"selected\"" );?>>JB</option>
  4. </select></td>


 
et tu vires tout le reste
 
ps: chuis pas sûr de la syntaxe, chuis une quille en php

n°1403567
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 10:24:35  profilanswer
 

ah, en plus je vois ce que t'as voulu faire... spa glorieux comme truc :o, et en effet, seul IE autorise de modifier l'attribut "value" d'un objet select. il faut passer par les options, et sélectionner celle que tu veux ;)
 
La version 100% JavaScript aussi :
 

Code :
  1. function Contact()
  2. {
  3.     if (window.location.href.indexOf("?" ) > -1)
  4.     {
  5.         var contactVal = "";
  6.         var params = window.location.href.substr(window.location.href.indexOf("?" ) + 1).split("&" );
  7.         for (var i = 0; i < params.length; i++)
  8.         {
  9.             if (params[i].split("=" )[0] == "contact" )
  10.             {
  11.                 contactVal = params[i].split("=" )[1];
  12.                 break;
  13.             }
  14.         }
  15.         if (contactVal.length > 0)
  16.         {
  17.             for (var i = 0; i < document.getElementById("contactSelect" ).options.length; i++)
  18.             {
  19.                 if (document.getElementById("contactSelect" ).options[i].value > contactVal)
  20.                 {
  21.                     document.getElementById("contactSelect" ).options[i].selected = true;
  22.                     break;
  23.                 }
  24.             }
  25.         }
  26.     }
  27. }
  28. document.onload = Contact;


 
Tu vires toute trace de PHP et des JS dans ta page, et ça marche, à condition de recevoir en URL un paramètre nommé "contact" et que ton select ait pour id "contactSelect"

Message cité 1 fois
Message édité par Arjuna le 10-07-2006 à 10:31:01
n°1403585
Rabbit14
Posté le 10-07-2006 à 10:38:41  profilanswer
 

LOL ... merci pour les soluces :)
J'ai pris la version PHP ;)
 
Et désolé de faire des trucs pas glorieux du tout mdr ... j'ai totalement lâche le dev web depuis des lustres et je rame pour m'y remettre !
 
Merci en tout cas ;)
 
JB

n°1403590
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-07-2006 à 10:41:33  profilanswer
 

anapajari a écrit :

si :o
Tu ne "dois" pas pouvoir changer directement la value d'un select sous FF.
Du coup tu vas être obligé de boucler sur toutes les options de ton select et de mettre selected à celle dont la valeur correspond.


Arjuna a écrit :

ah, en plus je vois ce que t'as voulu faire... spa glorieux comme truc :o, et en effet, seul IE autorise de modifier l'attribut "value" d'un objet select. il faut passer par les options, et sélectionner celle que tu veux ;)


 
Y'a de l'echo :o :o :o
Et je comprends pas une ligne dans ton truc:

Arjuna a écrit :


Code :
  1. if (document.getElementById("contactSelect" ).options[i].value > contactVal)



== plutot que > non?


Message édité par anapajari le 10-07-2006 à 10:41:55
n°1403593
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-07-2006 à 10:43:59  profilanswer
 

Yes, c'est == :)
 
C'est normal aussi, je suis reparti d'un autre script que j'ai écrit pour faire qqchose d'autre. Pis la zone de "Réponse rapide", elle est pas top pour corriger du code :p
 

Code :
  1. // This file add the "debug" directive to all links on the page if it is set on the current url
  2. // In other words, it extends the debug feature to the whole site
  3. function UpdateLinksWithDebugFlag()
  4. {
  5.     if (window.location.href.indexOf("?" ) > -1)
  6.     {
  7.         var debugEnabled = false;
  8.         var params = window.location.href.substr(window.location.href.indexOf("?" ) + 1).split("&" );
  9.         for (var i = 0; i < params.length; i++)
  10.         {
  11.             if (params[i] == "debug=1" )
  12.             {
  13.                 debugEnabled = true;
  14.                 break;
  15.             }
  16.         }
  17.         if (debugEnabled)
  18.         {
  19.             for (var i = 0; i < document.links.length; i++)
  20.             {
  21.                 if (document.links[i].href.indexOf("?" ) > -1)
  22.                 {
  23.                     document.links[i].href += "&debug=1";
  24.                 }
  25.                 else
  26.                 {
  27.                     document.links[i].href += "?debug=1";
  28.                 }
  29.             }
  30.             for (var i = 0; i < document.forms.length; i++)
  31.             {
  32.                 if (document.forms[i].action.indexOf("?" ) > -1)
  33.                 {
  34.                     document.forms[i].action += "&debug=1";
  35.                 }
  36.                 else
  37.                 {
  38.                     document.forms[i].action += "?debug=1";
  39.                 }
  40.             }
  41.         }
  42.     }
  43. }
  44. window.onload = UpdateLinksWithDebugFlag;



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de rafraichissement d'une liste déroulante

 

Sujets relatifs
[Javascript] Liste à choix multiple - Tout sélectionnerProblème accent dans requete sql
Probleme avec la fonction DATACHANGEDListe déroulante qui fait apparaître champ texte
[LOT DTS] Probleme de DemarrageProblème de texte qui dépasse d'un cadre
Problème avec le contenu d'un menu déroulant sous Accesschanger fréquence de rafraichissement de l'écran
Problème de lag pour un jeu 
Plus de sujets relatifs à : Problème de rafraichissement d'une liste déroulante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR