recuperer varaible en js définie dans plusieurs form

recuperer varaible en js définie dans plusieurs form - HTML/CSS - Programmation

Marsh Posté le 24-08-2006 à 18:16:22    

Bonjour,
 
je rencontre un souci avec javascript et les formulaires.
J'ai dans une page de saisie d'info à modifier plusieurs form, en voici 2 pour exemple.
 

Code :
  1. <form method="post" action="#" onsubmit="return envoiPost();">
  2. <div align="center">Suppression d'un code origine :
  3.   <input name="delorigine" type="text" id="delorigine" size="10" maxlength="6" />
  4.   (indiquer le num&eacute;ro du code origine)<br />
  5.   <input type="submit" name="Submit" value="   SUPPRIMER CE CODE ORIGINE   " />
  6. </div>
  7.   <input type="hidden" name="type_maj" value="79" id="type_maj" />
  8. </form><br>
  9. <form method="post" action="#" onsubmit="return envoiPost();">
  10. <div align="center">Suppression d'un code genre :
  11.   <input name="delgenre" type="text" id="delgenre" size="10" maxlength="6" />
  12.   (indiquer le num&eacute;ro du code genre)<br />
  13.   <input type="submit" name="Submit" value="   SUPPRIMER CE CODE GENRE   " />
  14. </div>
  15.   <input type="hidden" name="type_maj" value="69" id="type_maj" />
  16. </form>


 
Chacun a obligatoirement une value type_maj.
 
envoiPost dans script.js donne ceci :

Code :
  1. /**  
  2. *   INITIALISATION DE l'AJAX  
  3. **/   
  4. function ajaxInit()
  5. {
  6.    // ========================================================================================  
  7.    // ============== Initialisation de la classe permettant de faire de l'AJAX ===============  
  8.    // ========================================================================================  
  9.    if (window.XMLHttpRequest) { // Mozilla, Safari,...  
  10.       httpReq = new XMLHttpRequest();
  11.       if (httpReq.overrideMimeType) {
  12.          httpReq.overrideMimeType('text/xml');
  13.       }
  14.    } else if (window.ActiveXObject) { // IE  
  15.       try {
  16.          httpReq = new ActiveXObject("Msxml2.XMLHTTP" );
  17.       } catch (e) {
  18.          try {
  19.             httpReq = new ActiveXObject("Microsoft.XMLHTTP" );
  20.          } catch (e) {}
  21.       }
  22.    }
  23.    if (!httpReq) {
  24.       alert('Cannot create XMLHTTP instance');
  25.       return false;
  26.    }
  27.    // ----------------------------------------------------------------------------------------  
  28.    // ============ Fin Initialisation de la classe permettant de faire de l'AJAX =============  
  29.    // ----------------------------------------------------------------------------------------  
  30. }
  31. /**  
  32. *   ENVOI DU POST EN AJAX  
  33. **/
  34. function envoiPost()
  35. {
  36.    // Initialisation de l'ajax  
  37.    ajaxInit();
  38.    alert (document.getElementById("type_maj" ).value);
  39.    var type_maj=document.getElementById("type_maj" ).value;
  40.    // definition du type de maj :
  41.    if (type_maj==19){ // maj du theme de la semaine
  42.    var theme_nom = document.getElementById("theme_nom" ).value;
  43.    var theme_url = document.getElementById("theme_url" ).value;
  44.    var type_maj = document.getElementById("type_maj" ).value;
  45.    var post = "type_maj="+type_maj+"&theme_nom="+theme_nom+"&theme_url="+theme_url;
  46.    }
  47.    if (type_maj==58){ // suppression d'une image
  48.    var del_image = document.getElementById("del_image" ).value;
  49.    var post = "type_maj="+type_maj+"&del_image="+del_image;
  50.    }
  51.    if (type_maj==59){ // déplacement d'une image vers un film autre celui auquel elle est rattachée
  52.    var id_image = document.getElementById("id_image" ).value;
  53.    var id_film = document.getElementById("id_film" ).value;
  54.    var post = "type_maj="+type_maj+"&id_image="+id_image+"&id_film="+id_film;
  55.    }
  56.    if (type_maj==67){ // bascule infos personne sur une autre
  57.    var pers_rec = document.getElementById("pers_rec" ).value;
  58.    var pers_perd = document.getElementById("pers_perd" ).value;
  59.    var post = "type_maj="+type_maj+"&pers_rec="+film_rec+"&pers_perd="+film_perd;
  60.    }
  61.    if (type_maj==68){ // bascule infos film sur un autre
  62.    var film_rec = document.getElementById("film_rec" ).value;
  63.    var film_perd = document.getElementById("film_perd" ).value;
  64.    var post = "type_maj="+type_maj+"&film_rec="+film_rec+"&film_perd="+film_perd;
  65.    }
  66.    if (type_maj==69){ // suppression d'un code genre
  67.    var delgenre = document.getElementById("delgenre" ).value;
  68.    var post = "type_maj="+type_maj+"&delgenre="+delgenre;
  69.    }
  70.    if (type_maj==78){ // remplacement du titre d'un film
  71.    var id_film = document.getElementById("id_film" ).value;
  72.    var new_titre = document.getElementById("new_titre" ).value;
  73.    var post = "type_maj="+type_maj+"&id_film="+id_film+"&new_titre="+new_titre;
  74.    }
  75.    if (type_maj==79){ // suppression d'un code origine
  76.    var delorigine = document.getElementById("delorigine" ).value;
  77.    var post = "type_maj="+type_maj+"&delorigine="+delorigine;
  78.    }
  79.    if (type_maj==88){ // suppression d'une societe
  80.    var delsoc = document.getElementById("delsoc" ).value;
  81.    var post = "type_maj="+type_maj+"&delsoc="+delsoc;
  82.    }
  83.    if (type_maj==89){ // suppression d'une personne
  84.    var delpersonne = document.getElementById("delpersonne" ).value;
  85.    var post = "type_maj="+type_maj+"&delpersonne="+delpersonne;
  86.    }
  87.    if (type_maj==99){ // suppression d'un film
  88.    var delfilm = document.getElementById("delfilm" ).value;
  89.    var post = "type_maj="+type_maj+"&delfilm="+delfilm;
  90.    } 
  91.    var url = "postAjax.php";
  92.    alert("post="+post);
  93.    // =================================================  
  94.    // ========== Execution de la requete ==============  
  95.    // =================================================  
  96.    httpReq.onreadystatechange = resultatPost;
  97.    httpReq.open('POST', url, true); //envoi POST  
  98.    httpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
  99.    httpReq.send(post);
  100.    // -------------------------------------------------  
  101.    // ======== Fin Execution de la requete ============  
  102.    // -------------------------------------------------  
  103.    return false; // empeche le rechargement de la page  
  104. }
  105. /**  
  106. *   RESULTAT RETOURNE PAR LA REQUETE  
  107. **/
  108. function resultatPost() {
  109.    // ============================================================  
  110.    // ========== test sur l'execution de la requete ==============  
  111.    // ============================================================  
  112.    if (httpReq.readyState == 4) {
  113.       if (httpReq.status == 200) {
  114.          var postResult = httpReq.responseText;
  115.          document.getElementById("admin_result" ).innerHTML = postResult; // affichage du resultat  
  116.       } else {
  117.          alert('Un problème est survenu avec la requête.');
  118.       }
  119.    }
  120.    // ------------------------------------------------------------  
  121.    // ======== Fin test sur l'execution de la requete ============  
  122.    // ------------------------------------------------------------  
  123. }


 
Mon problème :
 
J'ai beau essayer de récuperer la valeur de type_maj par toutes les descriptions que je donne, il me ressort toujours la premiere de la liste, c.a.d 79 dans l'exemple présenté ci dessus.
 
Question : comment dire que type_maj appartient à tel ou tel form ??????
 
Je vous remercie de votre aide.
 
@+
 
lenono75
 

Reply

Marsh Posté le 24-08-2006 à 18:16:22   

Reply

Marsh Posté le 24-08-2006 à 18:36:14    

les ids doivent etre UNIQUES dans une page.
Ton getElementById remonte le premier qu'il trouve ( et donc pas celui du formulaire "cliqué" )
Le plus "simple" consiste à passer this en argument de ton onsubmit pour récuper  ton objet formulaire et pouvoir recuperer le champs qui t'interesse.

Reply

Marsh Posté le 25-08-2006 à 08:38:47    

Merci bien.
 
Les yeux fatigués empêchent parfois de réflechir.
Je n'y avait pas pensé !
 
Je teste et je remonte l'info.
 
@+
 
lenono75

Reply

Marsh Posté le 25-08-2006 à 09:59:29    

parfais !
 
je passe l'Id de la maj en argument de envoiPost(num) et ça marche.
 
Merci bien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed