IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Vérification des champs d'un formulaire : méthode plus simple?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Par défaut [Système] Vérification des champs d'un formulaire : méthode plus simple?
    Bonjour,

    Dans le cadre d'un formulaire je souhaite vérifier que chaque champ a bien été rempli, et que chaque valeur existe,

    Pour une première page j'ai réaliser un ensemble de if vérifiant le contenu des valeurs, et leur existence (donc if(isset($_POST["nom"])) { if($_POST["nom"]...} )

    Le soucis c'est que pour vérifier diverses conditions (exemple deux des champ doivent etre compris entre 1 et 50, le premier champ doit avoir une valeur inférieur au second, etc..) j'arrive rapidement à des centaine de lignes comprennant un nouveau if toute les 5lignes, et pour détecter les champs non valide je remplit une variable $erreur = 1 et une variable $Nomduchamp_Erreur = 1 à chaque erreur detecté (champ vide ou non conforme)
    et dans le "if final" je regarde si erreur = 1 alors je regarde (encore des if !) quelles variables $Nomduchamp_Erreur est égale a 1 pour executer le code en conséquence...

    Voilà donc je me dis qu'il doit y avoir plus simple, j'ai débuté le php il n'y a pas si longtemps, et bien que j'ai déjà pas mal codé, je m'aperçois bien que je manque de méthode pour le coup la, ça ressemble a du systeme D -_-

    Si vous pouviez m'aider ce serait très gentil

    PS: le formulaire renvoi sur la meme page, il actualise des informations présente sur la page, d'ou la vérification de l'existence des variables.

  2. #2
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Je parlais justement de PEAR HTML QuickForm tout à l'heure, je vous conseille de vous renseigner à ce sujet, cela rend la création de formulaires avancé très rapide.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Par défaut
    ah je vas voir merci

  4. #4
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Ou bien, si tu vois que tu vas souvent faire un formulaire, tu peux aussi décider de créer tes propres classes, ou si tu es plus procedural, des fonctions....

    Pour plus de détails sur PEAR--> Voir ma signature......

    Bonne chance !!!!
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Par défaut
    Ok j'ai compris le fonctionnement de HTML Quickform sans soucis,

    par contre la ou je rame un peu c'est que mon formulaire est compris dans un tableau, hors là quand je fais mon
    $form->display();
    Il m'affiche tout les champs et bouton d'un coup à cette endroit,

    comment lui faire afficher la ou l'on veux chaque champ?

    J'ai vu écrit Smarty par ci par la, mais j'ai pas bien compris comment ça fonctionnait, j'ai déjà mon tableau etc.. j'ai juste besoin de séparer les champs du formulaire pour terminer

  6. #6
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Instancie un renderer array pour récupérer un tableau B)

    Sinon, voici un exemple avec smarty.
    Code smarty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {foreach item=sec key=i from=$form}
    {if isset($sec.html) and strlen($sec.html) gt 5}
    {$sec.html}
    {/if}
    {/foreach}
     
    {if $form.requirednote and not $form.frozen}
        <p>{$form.requirednote}</p>
    {/if}
    Code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    define('ROOT', '.');
    define('PAGE_EN_SMARTY', ROOT.'/fichier_smarty.tpl');
    // Largement recommande avec QF
    error_reporting(E_ERROR);
    // Le smarty
    require_once ROOT.'/include/smarty/libs/Smarty.class.php';
    class Smarty_Config extends Smarty {
       function Smarty_Config()
       {
            $this->Smarty();
            $this->template_dir = ROOT.'/templates/';
            $this->compile_dir  = ROOT.'/smarty/templates_c/';
            $this->config_dir   = ROOT.'/smarty/configs/';
            $this->cache_dir    = ROOT.'/smarty/cache/';
            //$this->caching = true;
       }
    }
     
    require 'HTML/QuickForm.php';
    require 'HTML/QuickForm/Renderer/ArraySmarty.php';
    // require 'HTML/QuickForm/Renderer/Array.php';
    $form = new HTML_QuickForm('mainform', 'post');
     
    // Instanciers des elements
    $form->addElement('textarea', 'nomchamps');
     
    // Example de groupe
    $buttons[] = &HTML_QuickForm::createElement('reset', 'btnClear', 'Clear');
    $buttons[] = &HTML_QuickForm::createElement('submit', 'btnSubmit', 'Submit');
    $form->addGroup($buttons);
     
    /*
    C'est la que se joue la gestion du renderer
    */
    $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty);
    $form->accept($renderer);
    $smarty = new Smarty_Config();
    $smarty->assign('form', $renderer->toArray());
    $smarty->display(PAGE_EN_SMARTY.".html");
    Ca se passe plus ou moins comme cela.
    Je n'ai pas testé ce code, il est moche et peut-être une erreur de syntaxe, je ne peux vérifier pour l'instant, c'est ma faut, néanmoins c'est une démonstration simple et rapide.
    L'idée que je te propose et d'utiliser un HTML_QuickForm_Renderer_Array et de faire un print_r du retour, et tu n'auras plus qu'a générer le code de sortie comme tu le souhaite.
    Notte aussi que je n'indente pas mon smarty car je trouve que le code de sortie est plus lisible pour faire comprendre aux graphistes avec lesquels je collabore ...
    Dernière remarque : au lieu de faire les require fastidieux on peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function __autoload($class_name) {
      require_once str_replace('_', '/', $class_name).'.php';
    }
    Plus d'information sur ces codes sur les manuels de pear et php, bon courage !

Discussions similaires

  1. vérification des champs d'un formulaire
    Par Je-cherche-pfe dans le forum C#
    Réponses: 4
    Dernier message: 01/09/2007, 21h17
  2. Vérification des champs d'un formulaire
    Par lunea dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/06/2007, 23h52
  3. vérification des champs d'un formulaire avant envoi
    Par fey dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 18/05/2007, 17h34
  4. pbm vérification des champs d'un formulaire
    Par mariafan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2006, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo