Page 1 sur 2
compte formulaire
Posté : 26 mai 2005, 18:09
par david
bonjour,
comment fait-on pour compter et afficher le nombre d'éléments d'un formulaire en javascript?
J'ai essayé ceci mais ça ne marche pas:
document.write(document.forms['formulaire'].length);
pouvez-vous m'aider?
Posté : 26 mai 2005, 18:11
par Cyrano
si c'est un formulaire générée dynamiquement, tu peux incrémenter un pointeur à chaque nouvel élément et récupérer la valeur ensuite.
Posté : 26 mai 2005, 18:45
par Invité
je ne vois pas bien ce quetu veux dire...
Posté : 26 mai 2005, 19:17
par Cyrano
Au début de la création de ton formulaire, crées une variable $nb_elements que tu initialises à 0: à chaque nouvel élément que tu ajoutes, mets en plus une ligne $nb_elements++; qui va incrémenter le comteur.
À la fin, tu as le nombre d'éléments total recherché
Posté : 26 mai 2005, 19:22
par ouckileou
sinon y'a un tableau "elements" qui contient tous les éléments d'un formulaire donc on peut avoir sa taille
à tester
Posté : 27 mai 2005, 00:46
par Invité
j'ai essayé cette solution
document.forms["formulaire"].elements.length
mais je n'obtiens rien quand je mets cette intruction dans un document.write
Je devrais obtenir un chiffre indiquant le nombre d'éléments dans mon formulaire...
Posté : 27 mai 2005, 01:01
par Invité
j'ai bien compris ta solution cyrano. Cependant j'aimerais savoir pourquoi ce que j'ai tenté ne fonctionne pas.
Posté : 27 mai 2005, 01:10
par ouckileou
tu as bien remplacé "formulaire" par le nom de ton formulaire ?
sinon essaye
en déclarant ton formulaire comme ça :
Posté : 27 mai 2005, 02:06
par Invité
est-il possible de controler un formulaire généré en php avec un javascript généré en php?
Posté : 27 mai 2005, 07:31
par Cyrano
Je comprends mal la question: avec PHP, tu génères une page qui peut contenir du html bien sur, mais également du JavaScript et en ce sens oui, tu peux. Peux-tu nous dire à quel schéma tu songes ?
Posté : 27 mai 2005, 08:01
par Cyrano
Ok, on oublie le PHP, la réponse en JavaScript était plus simple, je viens de faire un test mais il manquait un détail: la balise <form> doit avoir un attribut id qui l'identifie: voilà mon test:
<form action="" method="post" id="formulaire">
<input type="text" name="texte1" value="">
<input type="submit" name="ok" value="Ok" onclick="alert(document.forms['formulaire'].elements.length)"
</form>
En cliquant sur le bouton, j'obtiens le message d'alerte m'indiquant 2 correspondant au champ de saisie et au bouton d'envoi. Finalement, ton idée de départ était meilleure que la mienne mais je ne suis pas un king du JavaScript.
Posté : 27 mai 2005, 10:01
par Invité
formidable cyrano, ça marche quand la fonction js est dans le onclick. Merci!
Mais il y a toujours quelquechose qui m'échappe: je pensais qu'en mettant une simple instruction dans l'entête, on pouvait arriver au même résultat, comme ceci
<head>
<script language="javascript">
<!--
alert(document.forms['formulaire'].elements.length);
-->
</script>
</head>
Apparement ce n'est pas le cas et je ne comprends pas pourquoi.
Posté : 27 mai 2005, 11:18
par Cyrano
C'est normal parce qu'au chargement de la page, le code s'exécute "par ordre d'apparition en scène": or au moment où s'exécute ce script, le formulaire n'est pas encore créé, donc l'élément n'existe pas et la fonction va te retourner une erreur.
Par contre, si tu faisais dans l'en-tête:
Code : Tout sélectionner
<head>
<script language="javascript">
<!--
function compte_elements()
{
alert(document.forms['formulaire'].elements.length);
}
-->
</script>
</head>Et plus loin dans ton formulaire:
Code : Tout sélectionner
<input type="submit" name="OK" value="OK" onclick="compte_elements();">
Ça fonctionnerait parce que la fonction serait appelée APRÈS la création du formulaire.
Posté : 27 mai 2005, 16:30
par Invité
et pour transmettre une variable à 1 url en javascript, c'est la même syntaxe que php?
Posté : 27 mai 2005, 16:49
par Cyrano
Je vois pas trop ce que tu veux faire: mets moi un bout de code ressemblant à ce que tu veux faire, on verra bien.