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

Bibliothèques et frameworks PHP Discussion :

FormHelper et champs liés. [CakePHP]


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut FormHelper et champs liés.
    Bonjour, je suis en train de finaliser mon premier formulaire complexe sous cakePHP et j'ai encore besoin de votre aide

    Voilà j'ai créé des champs qui me permettent de récupérer un client ou un contact lorsqu'on commence à taper son nom. Pour information je réalise le processus avec le plugin Typeahead bootstrap, bref...

    J'ai donc un champs texte dans lequel je vais taper la recherche et sur lequel seront retournés les résultats. Je récupère deux informations, l'ID du client et sont libellé. Le libellé ira dans le champs permettant la recherche, l'ID lui ira dans un champs caché.

    Ce champs caché correspond, pour mon modèle a une clé étrangère d'un client alors que mon champs servant à ma recherche n'a aucune utilité pour la sauvegarde du formulaire. Ma première question est comment empêcher l'envoi de certains champs au controller lors d'un submit et la deuxième est comment relier deux champs entre eux ?

    En effet j'aurais besoin d'une "liaison" qui permettrais de rediriger les messages d'erreurs de mon champ caché vers celui qui affiche le libellé du client. Est ce possible ?

    D'avance merci.

  2. #2
    Membre Expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Ma première question est comment empêcher l'envoi de certains champs au controller lors d'un submit et la deuxième est comment relier deux champs entre eux ?
    Ce n'est en rien obligatoire de supprimer les champs qui ne sont pas associés au modèle lors de l'envoi d'un formulaire car ces données sont tout simplement ignorées quand on interagit avec la base de données, comme lors d'un save par exemple.

    Si tu souhaites quand même le faire, ça peut se faire en jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $this->Form->input('name',array('class' => 'onSubmitRemove'));
    avec le code jquery associé :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('form').on('submit', function() {
         $('.onSubmitRemove').remove();
    });

    Ou alors tu les laisse passer et tu les supprime dès leur arrivée dans le contrôleur.

    En effet j'aurais besoin d'une "liaison" qui permettrais de rediriger les messages d'erreurs de mon champ caché vers celui qui affiche le libellé du client. Est ce possible ?
    Il y a plusieurs manières de faire, le plus simple étant de modifier les erreurs retournées par les erreurs dans la fonction beforeRender de ton Controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function beforeRender() {
            if (isset($this->MonModel->validationErrors['champCache'])) {
                $this->MonModel->validationErrors['champVisible'] = $this->MonModel->validationErrors['champCache'];
                unset($this->MonModel->validationErrors['champCache']);
            }
    }

  3. #3
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Super comme d'hab, un léger regret pour ma première question puisque cela reviens a supprimer la donnée côté serveur (du moins même résultat). Mais sinon nickel ça fonctionne

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

Discussions similaires

  1. Etat avec des champs liés
    Par Thibaut_Dupont dans le forum Access
    Réponses: 2
    Dernier message: 17/07/2006, 18h04
  2. champs liés ds une seule table
    Par laure___ dans le forum Access
    Réponses: 6
    Dernier message: 12/07/2006, 13h31
  3. Probleme de champs liés
    Par Albert94 dans le forum Access
    Réponses: 3
    Dernier message: 19/06/2006, 11h54
  4. Ouvrir un formulaire presaisie avec les champs liés
    Par FrédéricCM dans le forum Access
    Réponses: 1
    Dernier message: 02/06/2006, 22h14
  5. Champs liés dans un formulaire
    Par tonyC dans le forum ASP
    Réponses: 1
    Dernier message: 20/04/2006, 11h00

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