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 :

[POO] Conflit avec objet ayant le meme name


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut [POO] Conflit avec objet ayant le meme name
    Bonjour tout le monde,
    la question est fort simple mais c'est pour une question d'estétique ou encore de convention

    Voici, j'ai un formulaire avec plusieur champs, en fait il est très long...j'ai donc décider de le séparer en 2 pages question d'ergonomie.
    Donc dans la premiere page je poste mes textbox après validation vers une seconde page où le formulaire se continu.

    Dans cette seconde page je récupère les champs, mais n'interagit pas immédiatement avec la base de donnée car j'ai des requete complexe dans lesquelle je dois avoir tout mes champs placer dans des variable pour mieux travailler avec les multiple requete...

    Je continue mon idée Dans la 2e page je récupère mes variable posté et les mets dans des types hidden
    1- Est ce une bonne manière de procéder??

    ensuite ces champs de type hidden je leurs donne comme name, le meme que celui de la page précédente pour la raison qui suit:
    Lors de la validation javascript de cette 2e page, s'il y a erreur je repost vers cette 2e page...ainsi en ayant les meme nom je peux réutiliser le $_POST...
    2-Mais est-ce une bonne manière d'agir?
    voici une partie de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ....
    //Page 2
    <?
    echo "<input type=\"hidden\" name=\"txtDate\" value=".$_POST['txtDate'].">
    <input type=\"hidden\" name=\"txtHeure\" value=".$_POST['txtHeure'].">
    <input type=\"hidden\" name=\"txtNumDossier\" value=".$_POST['txtNumDossier'].">
    ";
    ...
    ?>
    Ainsi en utilisant le meme name ca m'évite de faire une condition lorsque je set le value du type?Est ce la bonne manière d'agir ou il y en a une autre et je me complique trop la vie?

    De plus si mon code est mauvais je suis ouvert aux suggestions, c'est important de ce le faire dire je crois

    merci a ceux qui on lu ce roman!
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  2. #2
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    Salut,

    J'ai l'habitude de faire un peu autrement.

    D'abord pour chaque page de mon formulaire je créer un _valid.php
    Imaginons 5 pages, je créer donc 10 fichiers.

    formulaire1.php qui contient le premier <form></form> et qui a comme action formulaire1_valid.php

    Dans le fichier _valid.php de chaque page je stocke les informations dans la session puis je redirige vers le formulaire suivant à l'aide d'un header("Location: formulaire2.php");

    Ensuite, arriver au formulaire5_valid.php j'enregistre en base.

    Une petite astuce est de donner comme name au element de ton formulaire le non des champs de ta base. Du coup pour la requete d'insertion tu a juste un foreach à faire en excluant les bouttons par exemple.

    Voila c'est ma méthode il doit y en avoir beaucoup d'autre mais l'histoire des hidden je ne trouve pas ca super top

    ++
    On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
    http://blog.plopix.net
    http://www.ez-france.org

  3. #3
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    pour mes formulaires longs je fais un peu comme Atchoum (salut au passage) c'est à dire que je stocke en session.

    En fait, j'ai une classe métier qui est en session et que je remplit au fur et à mesure que j'avance dans mes pages et à la fin, j'appel la fonction save de ma classe.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  4. #4
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par siddh
    j'ai une classe métier qui est en session et que je remplit au fur et à mesure que j'avance dans mes pages et à la fin, j'appel la fonction save de ma classe.
    On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
    http://blog.plopix.net
    http://www.ez-france.org

  5. #5
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    excellent je ny avait pas pensé comme méthode effectivement
    Justement c'est pour ca que je postais ..:: Atchoum ::.. car je ne trouvais pas ca top de faire avec des hidden..en fait je trouvais ca trop laid!!

    Je suis habitué avec les classe mais dans d'autre langage que le php
    l'idée de siddh me plait bien de mettre une classe en session
    mais comment fait ton pour faire ainsi...est ce dans le début de la page on creer la classe et ensuite on la mets en session comme on le fait avec une variable?

    Ou encore, j'utilise la meme maniere ..:: Atchoum ::.. en appelant une page pour faire mes requete, pas exactement comme toi par contre mais enfin...est ce que ce serait plus dans une page _valide que je déclarerais ma classe et la placerais en session pour plutard?

    merci pour votre aide j'apprend beaucoup dans ce forum
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    alors, en fait tu auras certainement une page vers laquelle tu postera tous tes formulaires, en général moi c'est un index qui après envoit vers une classe qui est mon controleur de module.
    Dans mon controleur j'ai des méthodes comme ça :
    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
     
    //affichage du premier formulaire
    public function step1(){
         $_SESSION["maclasse"] = new MaClasse();
         // apres tu fais ton affichage, moi j'utilise smarty
    }
    // etape 2
    public function step2(){
        if(isset($_SESSION["maclasse"]) && isset($_POST["step2"])){
             $_SESSION["maclasse"]->loadFromRequest();
             // on part vers affichage formulaire suivant;
        }
        else
              header("location: index.php?todo=step1");
    }
    ainsi de suite ...

    Et dans ma classe, la méthode loadFromRequest récupère les éléments de $_POST pour les affecter aux membres de ma classe.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Ok merci
    je vais m'alligner ladessus aujourd'hui
    j'espere pas trop en arracher mais bref j'apprécie l'aide
    bonne journée

    Bien que j'écris résulu...ca marche avec n'importe quelle version de php?
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    euh si t es en php 4 ca sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION["maclasse"] =& new MaClasse();
    pour faire une référence a ton objet
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Placer un objet au centre de l'ecran meme avec scrollbar
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 33
    Dernier message: 29/10/2008, 20h40
  2. [POO] Probleme avec objet
    Par g_tarik0010 dans le forum Langage
    Réponses: 2
    Dernier message: 04/03/2008, 17h28
  3. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44
  4. Réponses: 2
    Dernier message: 28/03/2006, 03h36
  5. [POO] Déplacer un objet avec un pas.
    Par Olaf MENJI dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2005, 13h32

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