Comment mapper un enregistrement avec le fichier xml d'un formulaire

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Comment mapper un enregistrement avec le fichier xml d'un formulaire

    Bonjour
    nouvel utilisateur du framework joomla! je prends en main petit à petit l'outils.
    J'ai cependant une question concernant un formulaire et son remplissage par un enregistrement de la base ( dans le cadre du dev d'un composant)
    En effet :

    le fichier xml du formulaire est bien créé dans com_monComp/models/forms et je le récupère bien avec un loadForm sur un objet qui hérite de JModelList.

    Je récupére bien une ligne d'une table de la BDD en utilisant la fonction load('monID') sur une instance de JTable.

    mais comment fait on pour afficher le formulaire avec les valeurs que l'on a dans l'objet JTable ?

    Merci de m'orienter parce que là je rame un peu

  • #2
    Re : Comment mapper un enregistrement avec le fichier xml d'un formulaire

    Bonjour,

    La classe JForm possède une méthode bind http://api.joomla.org/cms-3/classes/...ml#method_bind qui permet de mapper un enregistrement au formulaire.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Comment mapper un enregistrement avec le fichier xml d'un formulaire

      Merci
      j'ai jeté un oeil sur cette fonction mais je n'arrive pas à obtenir ce que je veux c'est à dire un affichage du formulaire rempli avec les valeurs extraites depuis la base

      voici un bout de code qui se trouve dans le model
      Code PHP:
      //fonction qui permet de mapper un enregistrement de la table equipement avec le formuliare xml situé dans le dossier forms
          //@param: ID de l'equipement
          
      function mapFormEquipt($id){
              
      //je cree une instance de mon formulaire avec JForm
              
      $path =  JPATH_COMPONENT DS 'models' DS .  'forms' DS 'equipt.xml';
              
      $tabData=$this->loadUnEquipement($id); // je recupére bien mes donnees
              
      $form=JForm::getInstance('equipt',$path); // je recupére bien mon form depuis sa definition xml
              
      $form->bind($tabData);
               echo 
      $form->getInput('contact','formEquipt'); } //mais la pas de valeur pour ce champ qui ppourtant n'est pas vide 
      Je comprend pas bien comment fonctionne bind??

      Commentaire


      • #4
        Re : Comment mapper un enregistrement avec le fichier xml d'un formulaire

        Bind réalise le mapping de valeurs entre un tableau ou un objet et les champs du formulaire.

        Un var_dump de ton $form apprès le bind te montrerait qu eles valeurs sont bien assignées, et donc visibles via un get( 'nom_du_champ' ).

        la methode getInput est utilisée en phase de validation du formulaire, donc après rendu du formùulaire sur le site et validation.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Comment mapper un enregistrement avec le fichier xml d'un formulaire

          Bonjour
          je dois louper quelque chose
          En effet j'ai effectivement un tableau d'objet avec les différents champs dans le $form.
          Cependant le bind apparemment ne fait rien bien que la fonction renvoie true

          Je comprend pas comment je peux afficher en une seule fois tous les champs avec leur valeur une fois que la fonction bind a été effectuée

          NB: $form->get('nom du champ') n'est apparemment pas une fonction implémentée sur cet objet (erreur fatale)

          En tout cas merci pour vos réponses

          Commentaire


          • #6
            Re : Comment mapper un enregistrement avec le fichier xml d'un formulaire

            Regardes getValue ou getField.
            Ne sachant pas exactement ce que tu cherches à réaliser, on ne peut que te renvoyer à l'API de JForm... http://api.joomla.org/cms-3/classes/JForm.html
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Comment mapper un enregistrement avec le fichier xml d'un formulaire

              OK
              mais pas de problème je consulte l'API
              Ce que je cherche à faire est simple
              Comment depuis le fichier xml d'un form afficher l'ensemble du form avec les champs remplis par un enregistrement d'une table

              Le problème n'est pas vraiment d'y arriver car en utilisant dans une vue $this->form->getInput je récupére bien tous mes champs mais en faisant une ligne par champ ce qui me parait peu élégant

              Puisque un objet JForm utilise une méthode bind il me semblait logique de pouvoir faire quelque chose comme ça
              Je récupére un enregistrement dans la table
              je récupére un form depuis son fichier de définition
              je mappe les deux et affiche en html dans une vue ( mais il me semble qu'un echo devrait pour test faire l'affaire)
              le résultat de tous les champs remplis ( et je n'ai pas besoin de taper à la main chaque champ via la methode getInput )
              voila voila
              c'est peut être plus claire

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X