compte formulaire

david
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 18:09

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?

Mammouth du PHP | 19672 Messages

26 mai 2005, 18:11

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 18:45

je ne vois pas bien ce quetu veux dire...

Mammouth du PHP | 19672 Messages

26 mai 2005, 19:17

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é
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 mai 2005, 19:22

sinon y'a un tableau "elements" qui contient tous les éléments d'un formulaire donc on peut avoir sa taille

Code : Tout sélectionner

document.forms["formulaire"].elements.length
à tester

Invité
Invité n'ayant pas de compte PHPfrance

27 mai 2005, 00:46

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...

Invité
Invité n'ayant pas de compte PHPfrance

27 mai 2005, 01:01

j'ai bien compris ta solution cyrano. Cependant j'aimerais savoir pourquoi ce que j'ai tenté ne fonctionne pas.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 mai 2005, 01:10

tu as bien remplacé "formulaire" par le nom de ton formulaire ?

sinon essaye

Code : Tout sélectionner

document.getElementById('monFormulaire').elements.length
en déclarant ton formulaire comme ça :

Code : Tout sélectionner

<form id="monFormulaire" method="post" action=""> </form>

Invité
Invité n'ayant pas de compte PHPfrance

27 mai 2005, 02:06

est-il possible de controler un formulaire généré en php avec un javascript généré en php?

Mammouth du PHP | 19672 Messages

27 mai 2005, 07:31

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 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

27 mai 2005, 08:01

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

27 mai 2005, 10:01

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.

Mammouth du PHP | 19672 Messages

27 mai 2005, 11:18

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

27 mai 2005, 16:30

et pour transmettre une variable à 1 url en javascript, c'est la même syntaxe que php?

Mammouth du PHP | 19672 Messages

27 mai 2005, 16:49

Je vois pas trop ce que tu veux faire: mets moi un bout de code ressemblant à ce que tu veux faire, on verra bien.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: