Page 1 sur 1

Problème de validation de champs

Posté : 28 avr. 2005, 16:30
par Olivier
Bonjour.

Dans mon formulaire HTML, j'ai créé 3 champs qui s'ouvrent en liste déroulante (date d'emprunt, référence livres et quantité).
Ces champs s'afficheront dynamiquement, aussi souvent que j'ai de références de livres empruntés.

Je n'arrive pas à valider ces champs (à récupérer les bonnes valeurs pour les champs appropriés) et à y faire les contrôles nécessaires (aucun champ ne doit être vide).
Ce que je récupère est partiel et pas toujours cohérent.

Pouvez-vous m'aider ?

Merci.

Posté : 28 avr. 2005, 16:31
par zeus
Est-ce que tu peux nous montrer ton code svp !!!

Posté : 28 avr. 2005, 16:36
par Olivier
Le code est trop long pour être affiché ici, mais j'ai essayé d'indicer mes champs pour les valider par la suite.

Est-ce la bonne méthode ?

Posté : 28 avr. 2005, 16:41
par zeus
En fait, je pensais que tu n'avais pas indicé tes champs !!! Mais oui, c'est la bonne méthode !!!!

Est-ce que tu propose un champs vide au départ ou pas ?

Posté : 28 avr. 2005, 16:59
par Cyrano
Bon, on respire un grand coup et on prend des notes...

Pour valider des champs dans un formulaire, la première chose à faire, c'est de récupérer les valeurs saisies par l'internaute. Pour celà, on va se servir d'une variable qui les garde en stock, une super-globale: nous avons le choix : $_GET ou $_POST . Le choix dépend de la valeur qu'on aura mis dans l'attribut "method" de notre balise <form>

Par soucis de pas embrouiller la manoeuvre, nous utiliserons $_POST pour ce qui suit. Cette variable est un tableau indexé et les index sont les nom des zones de saisie du formulaire. Ainsi, si j'ai un <input type="text" name="nom" />, je vais retrouver la valeur saisie dans $_POST['nom']

Si vous avez correctement suivi jusqu'ici, il nous reste à vérifier ce qu'il y a dedans: Mais la première chose à faire pour éviter des messages d'erreur, c'est de vérifier si le bouton a été cliqué. Ce bouton (<input type="submit" >) doit également avoir un attribut "name" : pour l'instant, nous le nommerons "envoi". Donc :
<?php
if(isset($_POST['envoi']))
{
    /* Le bouton a été cliqué, on passe à la suite */
    /* On crée des variables qu'on initialise avec les valeurs envoyées */
    $nom = $_POST['nom'];
    /* On veut vérifier que cette case du formulaire n'est pas restée vide */
    if($nom == "")
    {
        echo("<p>Vous devez mentionner votre nom.</p>\n");
        /* à cet endroit, on peut afficher à nouveau le formulaire. */
    }
}
else
{
    /* Le bouton n'a pas été cliqué, on pourrait simplement afficher le formulaire de base */
}
Voilà, c'est la base élémentaire, un exemple beaucoup plus complet est à télécharger ICI

Posté : 28 avr. 2005, 18:10
par Olivier
Merci.

Mais je sais déjà faire ça :wink:

J'aimerais un exemple dynamique avec des indices :

dans mon cas il ne s'agit pas de valider plusieurs champs distincts, mais plusieurs champs identiques.
Par exemple avec mes champs date d'emprunt, référence livre et quantité, je peux avoir un emprunteur qui emprunte 3 livres de maths différents (admettons 4 livres de maths. spé, 2 de meths financières et 6 de mathématiques générales). Il me faudra alors faire apparaitre et valider les 3 lignes suivantes :

nombre d'exemplaire : liste déroulante dynamique (ici 3)

date d'emprunt référence livre quantité

25/5/05 maths fi 4
26/5/05 maths spé 2
27/5/05 maths générales 6