Form en variable JS

Form en variable JS - HTML/CSS - Programmation

Marsh Posté le 05-06-2008 à 12:01:26    

Bonjour tout le monde, alors voila mon problème :

Citation :


 
function PopUpMAJ(LigneCourante)
{
  var FormCourant = "FormMAJ" + LigneCourante;
   
  alert (document.FormCourant.NumeroLigne.value);
}
 
//Il s'agit d'une cellule d'un tableau  
<TD>
      <FORM NAME='FormMAJ$NumeroLigne' STYLE='display:inline'><INPUT OnClick='PopUpMAJ($NumeroLigne)' TYPE='Image' SRC='Image\MAJ.gif'>
      <input type=hidden name='NumeroLigne' value=$NumeroLigne></FORM>
</TD>
 


 
Alors voila, j'ai le nom d'un Form qui est variable, il peu prendre les valeur FormMAJ0, FormMAJ1, FormMAJ2, etc.... Donc je récupère la ligne de la cellule que l'ont à cliqué. Ensuite je voudrais passer des paramètre pour un pop-up.
 
PROBLEME :
Dans mon JS quand je veut faire le alert ca ne marche pas car la variable FormCourant ne fait partie de page HTML (Logique ?) selon le navigateur.
En fait il faudrait que JS analyse la valeur de FormCourant plutot que de lire le nom de la variable comme une chaine.
Ou alors peut-etre faire afficher ce pop-up le tout en HTML, si c'est possible. Ca serai encore mieux :).
 
Si j'ai choisi le JS plutot que le HTML, c'est simplement parce que je voudrait que lorsque que l'ont clique sur un bouton du pop-up il se ferme et la page qui à lancé ce pop-up sois automatiquement rechargée.
 
Merci de votre aide


Message édité par Xtrmboss le 05-06-2008 à 12:05:27

---------------
Coz every girl crazy bout a sharp dressed man
Reply

Marsh Posté le 05-06-2008 à 12:01:26   

Reply

Marsh Posté le 05-06-2008 à 12:07:30    

tu mets sur tes input hidden un id ( genre id="formMAJ01_hidden14" ) et tu fais document.getElementById("formMAJ01_hidden14" ).value pour avoir la valeur  
 
sachant que la chaine "formMAJ01_hidden14" peut etre construit dynamiquement


---------------

Reply

Marsh Posté le 05-06-2008 à 13:58:55    

D'accord merci pour l'info, je ne savais pas que la fonction getElementById pourrai avoir des élèment gérés dynamiquement.
 
Mais en fait j'aurais du mettre la suite de mon code  :??:  
Car voila le reste de la fonction JS
 

Citation :


function PopUpMAJ(LigneCourante)
{
  var FormCourant = "FormMAJ" + LigneCourante;
 
  document.FormCourant.method='POST';
  document.FormCourant.action = open("Maj.php", "Editer", "menubar=no, status=no, scrollbars=no, menubar=no, width=200, height=100" );
  document.FormCourant.submit();
}


 
à la ligne

Citation :

document.FormCourant.method='POST';

je voudrait qu'il lise le contenu de la variable comme cela :

Citation :

document.FormMAJ0.method='POST';

mais JS lit liéralement

Citation :

document.FormCourant.method='POST';

comme je l'ai écris. Et vous vous en doutez, FormCourant n'existe pas dans le code HTML. D'où le bug.
 
En sachant que je cherche juste à passer une variable contenu dans mon Form vers un Pop-up.
Ou alors pourquoi pas passer cette variable en JS, mais uniquement avec la méthode POST.
 
Merci :)


Message édité par Xtrmboss le 05-06-2008 à 14:02:14

---------------
Coz every girl crazy bout a sharp dressed man
Reply

Marsh Posté le 05-06-2008 à 14:05:24    

et utislier document.getElementById pour recuperer ton form , ca ne te tente pas ?  
 
nan, parceque je ne t'ai pas donné une indication juste pour la décoration, c'est vraiment quelque chose qui peut être utile dans ton cas, en lpus d'être plus propre


---------------

Reply

Marsh Posté le 05-06-2008 à 14:44:29    

Exemple si je clique sur la ligne 0
 

Code :
  1. function PopUpMAJ(LigneCourante)
  2. {
  3.   var IdFormTexte = "IdMAJ" + LigneCourante;
  4.   alert(IdFormTexte); //Affiche "IdMAJ0"
  5.   var IdForm = document.getElementById(IdFormTexte);
  6.   alert(IdForm); //Affiche "[Object]"
  7.   document.IdForm.method='POST'; //Cherche le Form IdForm
  8.   document.IdForm.target='Maj.php'
  9.   document.IdForm.action = open("Maj.php", "Editer", "menubar=no, status=no, scrollbars=no, menubar=no, width=200, height=300" );
  10.   document.IdForm.submit();
  11. }


 
J'a ibien suivit tes sonseils, encore une fois (même si je n'ais pas mis de code ca veut pas dire que je n'ai pas essayé ta 1er réponse ;) )
Et Je me retrouve au final toujours avec le même problème.
JS lit le nom de la variable "IdForm" au lieu de lire son contenu.
Je pense pas que créer des variables à nom dynamique soit une bonne idée  :pt1cable:  
 
T'en pense quoi ?


Message édité par Xtrmboss le 05-06-2008 à 15:01:36

---------------
Coz every girl crazy bout a sharp dressed man
Reply

Marsh Posté le 05-06-2008 à 16:45:39    

Code :
  1. var IdForm = document.getElementById(IdFormTexte);
  2.   alert(IdForm); //Affiche "[Object]"
  3.   document.IdForm.method='POST'; //Cherche le Form IdForm


Non, ça cherche un formulaire qui à le nom IdForm...
 

Code :
  1. var IdForm = document.getElementById(IdFormTexte);
  2.   IdForm.method='POST'; // t'as une variable, utilise la


Reply

Marsh Posté le 05-06-2008 à 17:12:02    

Juste en enlevant le "Document" il ne va plus chercher un formulaire qui porte le nom IdForm ? Il va bien prendre le contenu d'IdForm ?
 
 
Je vais tester ca demain. @+ ;)


---------------
Coz every girl crazy bout a sharp dressed man
Reply

Sujets relatifs:

Leave a Replay

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