compte formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : compte formulaire

par Cyrano » 27 mai 2005, 17:14

Alors il va falloir sérialiser le tableau pour l'ajouter à l'url. Je suis pas un spécialiste en JavaScript, mais tu trouveras des informations intéressantes ICI sur la sérialisation de tableau et les échanges PHP/JavaScript.

par Invité » 27 mai 2005, 17:03

J'ai un javascript généré en php qui compte le nombre de cases cochées qui se trouvent dans mes formulaires.
onClick='for (i=0; i<= document.forms.length; i++) {
alert(document.forms.elements[0].checked)
}


ce code me retourne true ou false pour chaque case à cocher qui se trouve dans ma page.

ce que je veux faire:
1- créer un tableau associatif contenant les cases à chocher qui sont "true"

2- envoyer ce tableau à une autre page via une url

par Cyrano » 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.

par Invité » 27 mai 2005, 16:30

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

par Cyrano » 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.

par Invité » 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.

par Cyrano » 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.

par Cyrano » 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 ?

par Invité » 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?

par ouckileou » 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>

par Invité » 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.

par Invité » 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...

par ouckileou » 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

par Cyrano » 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é

par Invité » 26 mai 2005, 18:45

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