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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Pb dans mon code javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Pb dans mon code javascript

n°973740
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 09:35:19  profilanswer
 

Bonjour à tous,
 
Je cherche à lier 2 listes déroulantes avec un input mais malheureusement cela ne marche pas
En effet, kan je clique sur le premiere liste cela ne donne aucune action javascript
Voici le code final après de longues heures de remuménage....

Code :
  1. <html>
  2. <HEAD>
  3. <TITLE>Traitement Salaire</TITLE>
  4. </HEAD>
  5. <center><H2>Traitement Salaire</H2></center>
  6. <SCRIPT LANGUAGE="JavaScript">
  7. function modifierListe()
  8. {
  9. if (document.getElementById)
  10. {
  11. alert('Vous venez de changer de salarie');
  12.  var maChaine = document.getElementById('salarie').value;
  13.       var maChaineEclatee = maChaine.split(";" );
  14.         for (var i=0; i<maChaineEclatee.length; i++)   
  15.      document.getElementById('heure_contra').value = maChaineEclatee[4];
  16.      if (maChaineEclatee[3] == 'CAF')
  17.      {
  18.              document.getElementById('activite').options[0].selected =1;
  19.      }
  20.      if (maChaineEclatee[3] == 'CPT')
  21.      {
  22.              document.getElementById('activite').options[1].selected =1;
  23.      }
  24.      if (maChaineEclatee[3] == 'CUI')
  25.      {
  26.              document.getElementById('activite').options[2].selected =1;
  27.      }
  28.      if (maChaineEclatee[3] == 'DIR')
  29.      {
  30.              document.getElementById('activite').options[3].selected =1;
  31.      }
  32.      if (maChaineEclatee[3] == 'ENT')
  33.      {
  34.              document.getElementById('activite').options[4].selected =1;
  35.      }
  36.      if (maChaineEclatee[3] == 'ETA')
  37.      {
  38.              document.getElementById('activite').options[5].selected =1;
  39.      }
  40.      if (maChaineEclatee[3] == 'REC')
  41.      {
  42.              document.getElementById('activite').options[6].selected =1;
  43.      }
  44.      if (maChaineEclatee[3] == 'SAL')
  45.      {
  46.              document.getElementById('activite').options[7].selected =1;
  47.      }
  48. }
  49. }
  50. </SCRIPT>
  51. <form name="form1" action="insertion.php" method="POST">
  52. <div align=center>
  53. <b>Choix du salari&eacute;</b>
  54. <input type='hidden' name='etablissement' value=CONT>
  55. <SELECT NAME='salarie' id='salarie' WIDTH=20 onChange='modifierListe(this.value)'><OPTION VALUE=nul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</OPTION><OPTION VALUE='0327;BEGOC;ELISABETH;ETA;149.5'>BEGOC ELISABETH</OPTION>
  56. <OPTION VALUE='0322;BLEUZEN;NATHALIE;ETA;169.'>BLEUZEN NATHALIE</OPTION>
  57. <OPTION VALUE='0315;BOUCHER;SOLENE;ETA;169.'>BOUCHER SOLENE</OPTION>
  58. <OPTION VALUE='0551;BOUGUEN;KEVIN;SAL;1.'>BOUGUEN KEVIN</OPTION>
  59. </select>
  60. <b>Secteur d'activit&eacute;</b>
  61. <SELECT NAME='activite' id='activite'><option value='CAF'>CAFETERIE</option><option value='CPT'>COMPTABLE</option><option value='CUI'>CUISINE</option><option value='DIR'>DIRECTION</option><option value='ENT'>ENTRETIEN</option><option value='ETA'>ETAGE</option><option value='REC'>RECEPTION</option><option value='SAL'>SALLE</option></SELECT><br><br>
  62. <b>P&eacute;riode</b>
  63. <input type='text' name='date' size='5' maxlength='5' value='02/05'><b> (MM/AA)
  64. Heure contractuelle</b>
  65. <input type='text' name="heure_contra" size='8' maxlength='8' id="heure_contra">
  66. <b>Repas th&eacute;orique</b>
  67. <input type='text' name='repas_theo' size='2' maxlength='2'>
  68. <div align=center>
  69. <input type="reset" name="effacer" value="Effacer">
  70. <input type="submit" name="ok" value="Valider">
  71. </form>
  72. </div>
  73. </body>
  74. </html>


 
Merci pour toutes reponses ou toutes aides précieuses...


Message édité par kwa29 le 07-02-2005 à 15:21:29

---------------
Visiter mon site http://kwa29.com
mood
Publicité
Posté le 07-02-2005 à 09:35:19  profilanswer
 

n°973778
FlorentG
Posté le 07-02-2005 à 10:01:58  profilanswer
 

Beaucoup d'erreurs dans la syntaxe de ton code HTML et de ton code JavaScript :/

n°973782
esrevni
à contrario
Posté le 07-02-2005 à 10:11:11  profilanswer
 

On dirait que tu as tout tapé d'un jet puis tu a testé sans succès.  
 
Si je peux te donner un conseil, c'est de reprendre au départ et de tester que ton code fonctionne au fur et à mesure de la redaction.

n°973784
FlorentG
Posté le 07-02-2005 à 10:12:19  profilanswer
 

Et aussi de tout refaire aux normes, et d'utiliser des fonctions DOM dans ton javascript (donc genre document.getElementById, etc...)

n°973813
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 10:31:20  profilanswer
 

FlorentG kan tu dis beacoup d'erreur tu penses o kel ??
 
PS : un grand merci pour vos reponses c cool...


---------------
Visiter mon site http://kwa29.com
n°973814
FlorentG
Posté le 07-02-2005 à 10:32:43  profilanswer
 

Problèmes de syntaxe surtout, le HTML qui fait très 1995 :D Dans le javascript, je crois qu'il faut précéder les déclarations de variables par le mot clé 'var'

n°973817
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 10:35:42  profilanswer
 

En javascript je suis d'époque je crois...


---------------
Visiter mon site http://kwa29.com
n°973825
Bidem
Posté le 07-02-2005 à 10:42:48  profilanswer
 

En Vrac :
 
 - l'appel à la fonction ModifierListe(-1) avec un parametre inutile (ex : le teste if(code_item =="ETA" ) ne retournera jamais true à moins que dans ton espace-temps -1 puisse être égal à "ETA" )
 
 - je ne vois pas comment le test if (document.form1.salarie.options[id].value == "ETA" ) pourrait retourner true vu que tes values sont plutot de la forme '0322;BLEUZEN;NATHALIE' ...
 
Conseil : reprends tout depuis bidut
 
background-image: url('includes/anael.bmp');
AAAARRRRGGHHHHH transforme-moi cette image en un autre format moins lourd

n°973856
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 11:36:30  profilanswer
 

Je l'ai complétement refais...


---------------
Visiter mon site http://kwa29.com
n°973865
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 11:45:22  profilanswer
 

Avec le alert('Voir' + salarie) j'arrive à avoir quelque chose de pas mal mais separé par des points virgules
genre : 0228;LOZACH;DAVID;REC;76.27
Dasn mon cas les champs 0228 LOZACH DAVID ne m'interesse pas par contre il REC donne le focus sur la deuxierme liste puis 76.27 se retrouve dans les champs heure_contra


---------------
Visiter mon site http://kwa29.com
mood
Publicité
Posté le 07-02-2005 à 11:45:22  profilanswer
 

n°973867
FlorentG
Posté le 07-02-2005 à 11:45:50  profilanswer
 

Ok, ça commence à être un peu plus commestible [:petrus75]. La  message box s'affiche bien ? (donc le alert('Voir' + salarie)) ?

n°973868
FlorentG
Posté le 07-02-2005 à 11:46:14  profilanswer
 

Ok, cross-post

n°973881
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 11:49:20  profilanswer
 

yes alaise


---------------
Visiter mon site http://kwa29.com
n°973884
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 11:50:05  profilanswer
 

Par contre il faut que je dessoude ma chaine de caractere à savoir 0228;LOZACH;DAVID;REC;76.27 sauf que je le fais avec javascript direct ou en php ??


---------------
Visiter mon site http://kwa29.com
n°973892
FlorentG
Posté le 07-02-2005 à 11:52:39  profilanswer
 

T'en as besoin dans ton javascript ?

n°973893
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 11:53:23  profilanswer
 

En javascript ya ca :

Citation :


Chaine.substr(position1, longueur)  La méthode retourne une sous-chaîne commençant à l'index dont la position est donnée en argument et de la longueur donnée en paramètre.
 
Chaine.substring(position1, position2)  La méthode retourne la sous-chaîne (lettre ou groupe de lettres) comprise entre les positions 1 et 2 données en paramètre.


Message édité par kwa29 le 07-02-2005 à 11:53:40

---------------
Visiter mon site http://kwa29.com
n°973896
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 11:54:31  profilanswer
 

Oui j'en ai besoin dans mon javascript


---------------
Visiter mon site http://kwa29.com
n°973899
FlorentG
Posté le 07-02-2005 à 11:55:02  profilanswer
 

Ah ben oui faut le faire en JS alors...

n°973918
Bidem
Posté le 07-02-2005 à 12:06:42  profilanswer
 

kwa29 a écrit :

Par contre il faut que je dessoude ma chaine de caractere à savoir 0228;LOZACH;DAVID;REC;76.27 sauf que je le fais avec javascript direct ou en php ??


 
Pour ça il y a la fonction split()
 

Code :
  1. var maChaine = "0228;LOZACH;DAVID;REC;76.27";
  2. var maChaineEclatee = maChaine.split(";" );
  3. for (var i=0; i<maChaineEclatee.length; i++) {
  4.   alert(maChaineEclatee[i]);
  5. }

n°973956
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 12:35:49  profilanswer
 

Génial Merci bidem.
On approche de la fin et du resolut. Il ne me reste plu squ'a mettre le focus en seleted sur la 2eme liste et c fini
 
Je v pouvoir partir bouffer avec le ventre reposé hiihihi
 
PS : je mets à jour le script


---------------
Visiter mon site http://kwa29.com
n°974052
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 14:20:18  profilanswer
 

Afin de positionner la liste 2 sur la bonne value il faut faire un :
document.getElementById('secteur').value = maChaineEclatee[3];
 
mais comment mettre le sected dessus ??


---------------
Visiter mon site http://kwa29.com
n°974053
FlorentG
Posté le 07-02-2005 à 14:21:11  profilanswer
 

Tu boucles sur chaque option, et tu rajoute l'attribut selected quand t'as la bonne valeur

n°974054
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 14:25:09  profilanswer
 

genre  :  
if (choix == 1) {document.getElementById('secteur').selected}
if (choix == 2) {document.getElementById('secteur').selected}
...


---------------
Visiter mon site http://kwa29.com
n°974055
FlorentG
Posté le 07-02-2005 à 14:29:33  profilanswer
 

Fait plutôt une boucle pour chaque option dans le select, puis si la valeur est bonne, tu rajoutes l'attribut.
 
Fonctions utiles : getElementById(id), getElementsByTagName(tag), setAttribute(attribute, value)

n°974103
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 15:02:07  profilanswer
 

Dsl mais j'arrive pas à foutre le selected dessus, juste une ajout de champ
Mon code utilisé

Code :
  1. if (maChaineEclatee[3] == 'ETA')
  2.      {     document.getElementById('activite').options[0].text = "ETAGE";
  3. document.getElementById('activite').options[0].value = 0;
  4.      }


 
snif snif snif


Message édité par kwa29 le 07-02-2005 à 15:12:05

---------------
Visiter mon site http://kwa29.com
n°974114
FlorentG
Posté le 07-02-2005 à 15:17:27  profilanswer
 

Utilise la méthode setAttribute ;) :

document.getElementById('activite').options[0].setAttribute('selected', 'selected');

n°974119
kwa29
Kwa29 @ l'ouest
Posté le 07-02-2005 à 15:19:12  profilanswer
 

Merci Florent mais g reussit à le faire differement (encore mon vieux javascript en tete)
 
dis moi ce que tu en pense.. mais en tout cas je le tag comme résolut... Apres c de la customisation
Le script plus en haut est mis à jour


---------------
Visiter mon site http://kwa29.com
n°974127
FlorentG
Posté le 07-02-2005 à 15:23:27  profilanswer
 

Stocke au moins le document.getElementById('activite') dans une variable, ça sera un peu plus rapide ;)

mood
Publicité
Posté le   profilanswer
 


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

  [Résolu] Pb dans mon code javascript

 

Sujets relatifs
Javascript: objet qui FUIT la sourisControle ASP.NET et javascript ?
Problème PHP/Javascriptmessage déjà lu [Résolu]
executer un fichier avec commande javascriptJava ou javascript?
Petite boucle qui ne marche pas.... [Résolu][javascript & php] marche pas help !!!
[php][expressions régulières]Retour chariot[resolu][resolu]utiliser un ejb entity depuis un ejb session
Plus de sujets relatifs à : [Résolu] Pb dans mon code javascript


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