Memoriser des valeurs de formulaires [Résolu]

Signaler
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
alonsyl
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
bonjour,




j'inclus des formulaires dans mon code html via javascript.
voici a peu pres le structure mon code :


<html>
<head>
<script language="javascript">
function chargeFormulaires() {
 codeHtml = "";
//voici le code qui ne fonctionne pas :
//for (cpte = 0; cpte < document.forms["theForm"].elements["formulaireText"].length, ; cpte++)
// tableauDesValeurs[cpte] = document.forms["theForm"].elements["formulaireText[" + cpte + "]"].value;
 for (i = 0; i < document.theForm.maListe.value; i++) {
  codeHtml = codeHtml + "
";
 }
 insertFormulaire.innerHTML = codeHtml;
}
</script>
</head>

<form name="theForm">
<select name="maListe" onchange="chargeFormulaires()">
<option value="0">0
<option value="1">1
<option value="2">2
<option value="3">3
</select>

</form>

</html>


tout marche tres bien sauf pour le code qui est en commentaire. le tableau "tableauDesValeurs" sert a mettre en memoire les valeurs afin de pouvoir par la suite les reafficher dans mes "formulaireText" lors de leur rechargement (dans mon "codeHtml = codeHtml + "
";").


je tiens a faire remarquer que j'ai deja essaye ce code en remplacant l'ecriture de "document.forms["theForm"].elements["formulaireText[x]"]" par "document.theForm.formulaireText[x]" mais ca plante encore davantage. je crois que c'est due au fait que "formulaireText[x]" est issu d'un "innerHTML".


pourriez-vous m'aider a corriger le bout de code ci-dessous afin que "tableauDesValeurs" soit convenablement renseigné ?
for (cpte = 0; cpte < document.forms["theForm"].elements["formulaireText"].length, ; cpte++)
 tableauDesValeurs[cpte] = document.forms["theForm"].elements["formulaireText[" + cpte + "]"].value;


merci a vous,




alonsyl

4 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
29
Bonjour,
   il s'agit de créer un certain nombre de zones de saisie
      et de les exploiter ?
   un ch'tit exemple alors ( ici, on ne fait qu'afficher le contenu des zones )

<html>
<head>
<script type= "text/javascript">


function chargeFormulaires(lst)
{
 document.getElementById("insertFormulaire").innerHTML="";
 for ( var n=0;n<lst.selectedIndex;n++)
 {
  document.getElementById("insertFormulaire").innerHTML+="
";
 }
}





function affiche()
{
  if ( document.theForm.formulaireText )
       { // au moins un champ existe
         if ( document.theForm.formulaireText.length )
              { // au moins 2, ici !
                for ( var n=0;n<document.theForm.formulaireText.length;n++ )
               {
                 alert(document.theForm.formulaireText[n].value);
               }
              }
         else { // 1 seul champ
                alert(document.theForm.formulaireText.value)
              }  
       }
  else { // aucun champ
         alert("rien");
       }
}
</script>
</head>

<form name="theForm">
 <select name="maListe" onchange="chargeFormulaires(this);">
  <option>rien</option>
  <option>un</option>
  <option>deux</option>
  <option>trois</option>
 </select>

 

  Afficher le contenu
</form>

</html>









<hr />
                        Cordialement             Bul    [mon Site] [=Bul M'écrire]
<hr />
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
29
ce serait d'ailleurs "plus simple" avec des ID

function chargeFormulaires(lst)
{
 document.getElementById("insertFormulaire").innerHTML="";
 for ( var n=0;n<lst.selectedIndex;n++)
 {
  document.getElementById("insertFormulaire").innerHTML+="
";
 }
}
function affiche()
{
 var n=0;
 while ( document.getElementById("frmtxt"+n) )
 {
  alert ( document.getElementById("frmtxt"+n).value );
  n++;
 }
}

<hr />
                                                Cordialement                      Bul       [mon Site]    [M'écrire]
<hr />
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
7
seigneur bultez,

j'ai plusieurs remarques a faire :

1) la plus importante => j'arrive a realiser ce que je cherchais a faire via le code ci-dessous :
<script language="javascript">
var nbFormulaires = 0;
var tableauDesValeurs = new Array;
function chargeFormulaires() {
 codeHtml = "";
 for (cpte = 0; cpte < nbFormulaires; cpte++)
  tableauDesValeurs[cpte] = document.forms["theForm"].elements["formulaireText[" + cpte + "]"].value;
 for (i = 0; i < document.theForm.maListe.value; i++) {
  if (tableauDesValeurs[i] != undefined)
   codeHtml = codeHtml + "
";
  else
   codeHtml = codeHtml + "
";
 }
 insertFormulaire.innerHTML = codeHtml;
 nbFormulaires = document.theForm.maListe.value;
}
</script>

2) le seul petit hic au code precedent c'est que je suis oblige de passer par la variable "nbFormuilaires" car "Ca marche!" jamais (sans pour autant generer d'erreurs) lorsque j'utilise ton
function chargeFormulaires() {
if (document.theForm.formulaireText) {
alert("Ca marche !");
}
...
ou meme mon
function chargeFormulaires() {
if (document.forms["theForm"].elements["formulaireText"]) {
alert("Ca marche !");
}
...
et le + etonnant c'est que lorsque je fais 1 copier/coller de Ton code et que je l'enregistre dans le bloc-note avec 1 extension *.htm, tout marche comme il faut.
ca ne reagit pas comme prevu uniquement lorsque cette instruction est dans Mon code.

cette instruction est correspondrait pourtant tou a fait a ce que je comptais faire.
pourquoi ne marche t'elle pas lorsque je la lets en tete de "chargeFormulaires()" ?

merci a toi,

alonsyl
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
7
merci bultez !

j'ai reussi a faire ce que je voulais et comme je le voulais, tes codes sont tres precieux !