Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2746 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  POO, objet rempli mais rien quand je l'affiche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

POO, objet rempli mais rien quand je l'affiche

n°1873001
allserv
Posté le 14-04-2009 à 21:34:32  profilanswer
 

Bonsoir,
 
J'ai un petit problème avec CodeIgniter mais qui s'apparente à un problème général de POO.
 
Mon objet est déclaré dans une classe dont voici le code :

Code :
  1. <?php
  2. class Mdl_Contact extends Model {
  3.     var $id   = '';
  4. var $societe   = '';
  5. var $secteur   = '';
  6. var $nom   = '';
  7. var $prenom   = '';
  8. var $adresse   = '';
  9. var $code_postal   = '';
  10. var $tel   = '';
  11. var $fax   = '';
  12. var $port   = '';
  13. var $email   = '';
  14. var $societe_technique   = '';
  15. var $nom_technique   = '';
  16. var $prenom_technique   = '';
  17. var $adresse_technique   = '';
  18. var $code_postal_technique   = '';
  19. var $tel_technique   = '';
  20. var $fax_technique   = '';
  21. var $email_technique   = '';
  22.    
  23.     function Mdl_Contact()
  24.     {
  25.         // Call the Model constructor
  26.         parent::Model();
  27.        
  28.        
  29.     }
  30.    
  31. function save() {
  32.        
  33.         $db_array = array(
  34.         "id" => $this->id,
  35.         "societe" => $this->societe,
  36.         "secteur" => $this->secteur,
  37.         "nom" => $this->nom,
  38.         "prenom" => $this->prenom,
  39.         "adresse" => $this->adresse,
  40.         "code_postal" => $this->code_postal,
  41.         "tel" => $this->tel,
  42.         "fax" => $this->fax,
  43.         "port" => $this->port,
  44.         "email" => $this->email,
  45.         "societe_technique" => $this->societe_technique,
  46.         "nom_technique" => $this->nom_technique,
  47.         "prenom_technique" => $this->prenom_technique,
  48.         "adresse_technique" => $this->adresse_technique,
  49.         "code_postal_technique" => $this->code_postal_technique,
  50.         "tel_technique" => $this->tel_technique,
  51.         "fax_technique" => $this->fax_technique,
  52.         "email_technique" => $this->email_technique
  53.        
  54.         );
  55.        
  56.         // If mdl_contacts->contact_id was set in the controller, then we will update an existing record.
  57.         if ($this->id) {
  58.             $this->db->where("id", $this->id);
  59.             $this->db->update("contacts", $db_array);
  60.         }
  61.         // If mdl_contacts->contact_id was not set in the controller, then we will insert a new record.
  62.         else {
  63.             $this->db->insert("contacts", $db_array);
  64.         }
  65.     }
  66.    
  67.    
  68.     function toString(){
  69.    
  70.      $tmp = "<ul>";
  71.    
  72.      foreach(get_class_vars(get_class($this)) as $key=>$value) {
  73.          if($key != "_parent_name" ) {
  74.           $val = $this->$key;
  75.           $tmp .= "<li>".$key." : ".$value."</li>";
  76.          }
  77.     }
  78.     $tmp .= "</ul>";
  79.      echo $tmp;
  80.     }
  81. }
  82. ?>


 
Mon code qui créer l'instance de 'lobjet et le rempli est le suivant :

Code :
  1. // Enregistrement dans la session
  2.   $contact =& new Mdl_Contact();
  3.   $contact->societe = $this->input->post('societe') ;
  4.             $contact->secteur = $this->input->post('secteur') ;
  5.             $contact->nom = $this->input->post('nom') ;
  6.             $contact->prenom = $this->input->post('prenom') ;
  7.             $contact->adresse = $this->input->post('adresse') ;
  8.             $contact->code_postal = $this->input->post('code_postal') ;
  9.             $contact->tel = $this->input->post('tel') ;
  10.         $contact->fax = $this->input->post('fax') ;
  11.             $contact->port = $this->input->post('port') ;
  12.             $contact->email = $this->input->post('email') ;
  13.             $contact->societe_technique = $this->input->post('societe_technique') ;
  14.             $contact->secteur_technique = $this->input->post('secteur_technique') ;
  15.             $contact->nom_technique = $this->input->post('nom_technique') ;
  16.             $contact->prenom_technique = $this->input->post('prenom_technique') ;
  17.         $contact->adresse_technique = $this->input->post('adresse_technique') ;
  18.             $contact->code_postal_technique = $this->input->post('code_postal_technique') ;
  19.             $contact->tel_technique = $this->input->post('tel_technique') ;
  20.             $contact->fax_technique = $this->input->post('fax_technique') ;
  21.             $contact->port_technique = $this->input->post('port_technique') ;
  22.             $contact->email_technique = $this->input->post('email_technique');
  23.             $contact->toString();
  24.   echo "societe : form=".$this->input->post('secteur')." | objet=".$contact->secteur ;


 
Comme vous pouvez le constater j'appel la méthode toString() à la fin des affectations ainsi qu'un echo basique pour vérifier une donnée issue du formulaire et le contenu du contact.
 
Le problème réside dans le fait que la méthode toString() n'affiche aucune valeur issue du formulaire alors que lors du echo les deux affichages fonctionnent parfaitement ?

Citation :

id :
societe :
secteur :
nom :
prenom :
adresse :
code_postal :
tel :
fax :
port :
email :
societe_technique :
nom_technique :
prenom_technique :
adresse_technique :
code_postal_technique :
tel_technique :
fax_technique :
email_technique :
societe : form=qsc | objet=qsc


 
 
Merci d'avance pour votre aide.
 
Louis

mood
Publicité
Posté le 14-04-2009 à 21:34:32  profilanswer
 

n°1873068
Profil sup​primé
Posté le 15-04-2009 à 08:46:20  answer
 

déjà il me semble que la méthode magique est

Code :
  1. __toString()

Est-ce normal qu'il n'y ait pas d'"underscore" :??:

n°1873115
tomsoft
Posté le 15-04-2009 à 10:08:52  profilanswer
 

deja, tu fais un $obj->toString();

 

ca doit en theorie retourner un string, qu'il faut afficher, mais ca c'est du detail, rien de grave.

 

Que fais tu de $val dans ton tostring ? car tu affiches $value


Message édité par tomsoft le 15-04-2009 à 10:09:49
n°1873120
Profil sup​primé
Posté le 15-04-2009 à 10:11:31  answer
 

ouais, d'où l'avantage de travailler avec les E_NOTICE :sarcastic:

n°1873125
tomsoft
Posté le 15-04-2009 à 10:16:47  profilanswer
 

un truc que j'utilise toujours, pour verifier ton objet,  

Code :
  1. <pre>
  2.    <?php var_dump($obj); ?>
  3. </pre>

n°1873483
allserv
Posté le 15-04-2009 à 18:23:11  profilanswer
 

luc@as : effectivement je devrais utiliser cette methode mais je t'avoue que je faisais cela seulement pour une vérification et ne me souvenais plus de cette méthode magique.
 
tomsoft : je n'utilise pas du tout cette méthode pour insérer en base de données et il s'agissait d'un exemple pris sur le net pour l'affichage des attributs d'un objet. Donc je n'utilise pas $val.
De plus j'avais bien essayé le var_dump mais beaucoup d'informations supperflues étaient affichées, avec un print_r() j'arrive à récuperer des infos de ce type :  
 

Code :
  1. [societe] => societe [secteur] => agro [nom] => celton [prenom] => louis [adresse] => 30 rue des burons [code_postal] => 85100 [tel] => 0202020202 [fax] => 0202020202 [port] => 0202020202 [email] => allserv@free.fr ) [mdl_contact] => Mdl_Contact Object *RECURSION* ) [mdl_domaine] => Mdl_Domaine Object *RECURSION* ) [mdl_mutualise] => Mdl_Mutualise Object *RECURSION* ) [mdl_serveur] => Mdl_Serveur Object *RECURSION* ) [secteur_technique] => [port_technique] => )


 
Merci encore pour votre aide.
 
Louis

n°1874107
allserv
Posté le 16-04-2009 à 22:15:25  profilanswer
 

Personne pour m'aider ? :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  POO, objet rempli mais rien quand je l'affiche

 

Sujets relatifs
Algorithme d'arbre de decision:Jtree non affiché!Aidez moi svp[debutant] programmation objet et formulaire.
creer un contenuer, il ne s'affiche pastable relationnelles, vues objet et héritage
phpMyAdmin et default value forcée ?Positionnement objet et image de fond
question basique sur le modèle objet[sql]Requête qui affiche les doublons à partir d'un critère
Thumbs qui ne s'affiche pasRécuperation d'un objet dans un JList
Plus de sujets relatifs à : POO, objet rempli mais rien quand je l'affiche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR