Page 1 sur 2
éléments form
Posté : 06 avr. 2006, 20:29
par Invité
Bonjour à tous,
j'utilise la syntaxe javascript suivante pour récupérer la veleur d'un champ de formulaire
document.all["champ1"].value;
existe-il une syntaxe pour récupérer toutes les valeurs d'un coup sans devoir préciser les id ou les noms?
Posté : 06 avr. 2006, 23:53
par PhilFree
Salut,
Pour récupérer les données ou les valeurs de chaque champ d'un formulaire, il faut utiliser le méthode "search" :
Exemple:
Soit le formulaire:
<form method="get" action="get.htm">
<p>Nom : <input type="text" name="nom" /></p>
<p>Prénom : <input type="text" name="prenom" /></p>
<p>Téléphone : <input type="text" name="telephone" /></p>
<p><input type="submit" name="Submit" value="Soumettre" /></p>
</form>
Dans la page get.htm, si tu fais:
nReq = location.search
nReq contiendra "
?nom=valeur&prenom=valeur&telephone=valeur "
Posté : 07 avr. 2006, 00:10
par Invité
j'ai mis ceci enbas de mon form
<script language="text/javascript">
<!--
test=location.search;
alert(test);
-->
</script>
pourtant j'ai d'autres fonctions js qui marchent, mais elles sont dans un fichier inclus...est-ce normal?
Posté : 07 avr. 2006, 00:13
par Invité
pareil entre les balises head...
Posté : 07 avr. 2006, 00:18
par Invité
j'ai oublié une phrase, lol. je veux dire que le script ne fonctionne pas, qu'il soit placé en bas du formou dans les balises <head>
Posté : 07 avr. 2006, 00:18
par PhilFree
La page get.htm:
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
<!--
alert(nReq = location.search);
//-->
</script>
</body>
</html>
La page formulaire.htm:
<html>
<head>
<title></title>
</head>
<body>
<form method="get" action="get.htm">
<p>Nom : <input type="text" name="nom" /></p>
<p>Prénom : <input type="text" name="prenom" /></p>
<p>Téléphone : <input type="text" name="telephone" /></p>
<p><input type="submit" name="Submit" value="Soumettre" /></p>
</form>
</body>
</html>
Posté : 07 avr. 2006, 00:26
par Invité
je ne comprends pas...ceci marche:
alert("bonjour");
mais ceci ne marche pas:
var test="bonjour";
alert(test);
Posté : 07 avr. 2006, 00:29
par Invité
ça veut dire qu'on ne peut pas récupérer les valeurs avec javascript, sans envoyer le formulaire?
Posté : 07 avr. 2006, 00:29
par PhilFree
Bien sûr que ça marche...il se fait tard tu devrais aller dormir et relire tout ça demain matin...

Posté : 07 avr. 2006, 11:27
par Invité
j'a bien dormi et effectivement ça va mieux!
dans la balise script, j'ai mis type au lieu de language.
sinon pour en revenir à ma question, n'y a -t-il pas un moyen de récupérer en javascript toutes les valeurs d'un formulaire sans avoir à l'envoyer?
Posté : 07 avr. 2006, 14:26
par Invité
bon ben a priori c'est pas possible...la seule solution de faire un array avec les noms des éléments du form.
en suite je parcours le tableau en utilisant la syntaxe
for (i...) '
document.forms["form"].elements["var_array+i"]=...
}
Posté : 07 avr. 2006, 16:37
par Invité
ya til l'équivalent de la fonction foreach (php) en javascript?
Posté : 07 avr. 2006, 17:10
par Invité
pour ceux que ça intéresse, voici le script qui permet de récup toutes les vars d'un form en une fois:
var a;
var i = 0;
var MonForm = document.forms["form1"];
for( a in MonForm)
{
i++;
alert("$" + MonForm.elements[a].name + ' = ' + MonForm.elements[a].value + '\n');
}
Posté : 07 avr. 2006, 18:33
par Invité
seul problème, c'est qu'il y a une incrémentation en trop. la boucle s'exécute pour tous les éléments du form + 1...comment arranger ça?
Posté : 08 avr. 2006, 09:20
par Invité
pour enlever la dernière incrémentation, j'ai fait ceci:
for( (a-1) in MonForm)
{
...
}
La syntaxe ne semble pas être bonne...avez vous une idée?