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 :

[PEAR][HTML_QuickForm] Problème étrange


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 19
    Points
    19
    Par défaut [PEAR][HTML_QuickForm] Problème étrange
    salut!

    Voilà mon problème: dans un formulaire j'ai un champ renseigné par l'utilisateur. Avec ce champ, le script php va faire une requête dans la base et ramène des infos que j'affiche dans la même page dans des champs prévus à cet effet. Rien de plus simple!
    L'exemple ci dessous illustre ce que je fais:

    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
     
    $myproduct = isset($_REQUEST['txtSource'])?$_REQUEST['txtSource']:'';
     
    $form = new HTML_QuickForm('frm', 'POST');
     
    if($myproduct != "")
    {
        // équivalent à select productname from products where productname = $myproduct
        $c = new Criteria();
        $c->add(ProductsPeer::PRODUCTNAME, $myproduct);
        $product = new Products();
        $product = ProductsPeer::doSelectOne($c);
     
        $productName= array('value' => $product->getProductName());
    }
     
    $form->addElement('text',       'txtSource', "Input");
    $form->addElement ('submit',    'btnSubmit',    "Submit");
     
    $form->addElement('text', 'txtProductName', 'product name', $productName);
     
    //$form->setDefaults($defaults);
     
    $form->display();
    Pour l'exemple je me contente d'aller vérifier que le champ est bien dans la base et je veux le réafficher dans le deuxième textfield du formulaire.
    Le code dans le if utilise propel/creole pour communiquer avec la base, mais c'est secondaire: il fonctionne, la BDD renvoi bien ce que je veux.
    Ce que je n'arrive pas à faire, c'est changer le "value" du deuxième textfield construit avec addElement. Pourtant le tableau associatif $productName n'est pas vide!
    Si au lieu de $productName je lui passe en dur un truc comme array('value' => 'myvalue') le champ texte aura bien la valeur "myvalue" à l'affichage. C'est à n'y rien comprendre.

    Ca doit être une erreur très bête, mais j'ai beau chercher, je ne vois pas.
    En utilisant setDefaults plutôt que array('value' =>...) etc, ca fait de toutes façons la même erreur.

    Please help!!

  2. #2
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par jeanvincent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->addElement('text', 'txtProductName', "product name', $productName);
    essaie en remplaçant cette ligne par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->addElement('text', 'txtProductName', product name', $productName);
    (une quote en trop). Ce n'est paut-être pas ça, mais en tout cas, "product name' ne fonctionnera pas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Non ce n'est pas ca
    J'ai tapé cet exemple pour le forum en fait!

    Mais mon véritable script est similaire (sans les erreurs de quote )

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    J'ai trouvé tout seul comme un grand

    Au lieu de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->addElement('text', 'txtProductName', 'product name', $productName);
    qui est théoriquement possible mais ne fonctionne pas bien, il faut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $myTextElement = $form->addElement('text', 'txtProductName', 'product name');
    $myTextElement -> setValue($product->getProductName());

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

Discussions similaires

  1. Problème étrange de précision avec double
    Par titoine1978 dans le forum DirectX
    Réponses: 4
    Dernier message: 22/02/2006, 09h26
  2. [Bug IE ?] Problème étrange, pas de titre explicite, désolée
    Par Huntress dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/10/2005, 16h44
  3. [VB.NET] Problème étrange lors de la création de BDD
    Par Playmo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/03/2005, 22h25
  4. [JMF] Problème étrange probablement dépendant de l'OS
    Par Farias dans le forum Multimédia
    Réponses: 4
    Dernier message: 31/10/2004, 17h35
  5. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 15h41

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