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

  FORUM HardWare.fr
  Programmation
  PHP

  PHP 4/5 -> Array (pas de liste ?) [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP 4/5 -> Array (pas de liste ?) [Résolu]

n°1530860
PIGs_DarkS​ith
Force Orange
Posté le 20-03-2007 à 02:37:08  profilanswer
 

Bon voilà, je vous explique mon problème.
J'ai créer une base de connaissances avec une gestion des utilisateurs.
Quand on édite le profil d'un utilisateur on peut lui définir les droits sur différentes parties du site.
J'ai développer ça dans une entreprise ou j'ai fais mon stage de BTS et mon site marchait nickel.
Seul soucis, j'ai récupérer les sources et est tout installé sur un serveur Xamp.
Tout marche marchel nickel sauf que pour la liste des droits des utilisateurs au lieu d'avoir un truc du genre :
[] Droits sur la partie 1
[] Droits sur la partie 2
[] Droits sur la partie 3
[] Droits sur la partie 4
........
 
J'ai ceci :
[] Array
 
J'ai essayé sur Wamp en PHP 4 et j'ai bien ma liste avec les cases à cocher mais j'ai pleins d'autres bugs ailleurs  :(  
 
Donc j'aimerais pouvoir faire marché mon site avec Xamp mais impossible de résoudre le problème.
 
Voici le code :

Citation :

    // -- Options utilisateur.
    $opt_util = new htmlOptionGroup();
    while($resultat=mysql_fetch_array($reponse))
     $opt_util->appendChild( new htmlOption('checkbox', 'options_util[]', $resultat['opt_id'], $resultat['opt_nom'], array_key_exists($resultat['opt_id'], $temp_options_util)));    
    $form->addOptionsGroup('options_util[]', 'Modifications :', $opt_util);


 
 
Je pense que mon soucis pourrait se résoudre très simplement en modifiant le fichier php.ini mais pas la moindre idée d'où il faut aller bidouiller.
 
 
Merci d'avance.


Message édité par PIGs_DarkSith le 24-03-2007 à 00:21:39
mood
Publicité
Posté le 20-03-2007 à 02:37:08  profilanswer
 

n°1530905
skeye
Posté le 20-03-2007 à 09:47:48  profilanswer
 

ton code n'aide pas beaucoup...on ne connait pas ta classe htmlOptionGroup, on ne connait pas le type de $form, on ne sait pas quelle requête tu fais, etc...[:skeye]


---------------
Can't buy what I want because it's free -
n°1530998
PIGs_DarkS​ith
Force Orange
Posté le 20-03-2007 à 12:07:08  profilanswer
 

Voici le code du formulaire :
 
  $requete = "SELECT opt_id, opt_nom FROM options_util";
  $reponse = mysql_query($requete);
   
  //=================================
  // Création du formulaire.
  //=================================
   // Entête.
    $form = new htmlForm('Utilisateur', '?add=1', 'post', 'return verif_form(this)');
    $form->setReadOnly($lecture);
   // Champs de saisi.
    $form->addHidden('id', $id);
    $form->addText('nom', 'Nom :', 75, '', $nom);
    $form->addText('prenom', 'Prenom :', 75, '', $prenom);
    $form->addText('login', 'Login :', 20, '', $login);
    $form->addText('password', 'password :', 6, '', $password);
     // -- Options utilisateur.
    $opt_util = new htmlOptionGroup();
    while($resultat=mysql_fetch_array($reponse))
     $opt_util->appendChild( new htmlOption('checkbox', 'options_util[]', $resultat['opt_id'], $resultat['opt_nom'], array_key_exists($resultat['opt_id'], $temp_options_util)));    
    $form->addOptionsGroup('options_util[]', 'Modifications :', $opt_util);  
   // Button "Save/Cancel/Delete".
    $form->addButtonSave();
    $form->addButtonCancel();
    if($id) $form->addButtonDelete();
   // Affichage du formulaire.
    $form->display();
 
Et voici les classes (c'est pas moi qui l'est fait), je serais pas trop l'expliqué, je comprend pas grand chose à tout ce basare :
 
<?php
class htmlOptionGroup extends tree {
 
 /// Retourne le code html généré pour l'affichage du groupe d'options.
 function getHtml($readonly=false){
  $html = '';  
  foreach( $this->childNodes as $child ){
   $html .= $child->getHtml($readonly);  
  }
  return $html;
 }
 
 /// Retourne le script JavaScript permettant le cochage/décochage assisté
 /// Nécessite les classes JavaScript présentes dans le fichier cascOptions.js.
 function getCascOptions(){
  $script = "\n<script type=\"text/javascript\"><!--\n";
  foreach( $this->childNodes as $child ){
   $script .= "var ".$child->getJavaScriptId()." = new cascOption('".$child->getId()."');\n";
   foreach( $child->childNodes as $subchild )
     $script .= $subchild->getJavascript( $child->getJavaScriptId() );
  }
  $script .= "//--></script>\n";
  return $script;
 }
 
}

 
/** Option html, quelle soit de type checkbox ou radio.
 *
 * Cette classe est utilisée pour créer des options/sous options en cascade.
 * L'ajout de sous options s'effectue via la méthode \c appendChild héritée de treeNode.
 *
 */
class htmlOption extends treeNode {
 var $type;
 var $name;
 var $id;
 var $javascript_id;
 var $value;
 var $label;
 var $checked;
 var $title;
 
 /// Constructeur
 /// \param type Type d'option, radio ou checkbox
 /// \param name Nom du champ
 /// \param value Valeur du champ
 /// \param label Libellé du champ
 /// \param checked Booléen indiquant si l'option est pré-sélectionnée ou non
 /// \param title Contenu de l'info bulle qui s'affichera lors du passage de la souris sur le champ
 function htmlOption($type,$name,$value,$label,$checked=NULL,$title=NULL){
  $this->type = $this->validType($type) ? $type : 'checkbox';
  $this->name = $name;
  $this->id = str_replace( '[', '', str_replace( ']', '', $name ) ).'-'.$value;
  $this->javascript_id = str_replace( '-', '', $this->id );
  $this->value = $value;
  $this->label = $label;
  $this->checked = $checked;
  $this->title = $title ? $title : $label;
 }
 
 /// Retourne le code html généré pour l'affichage de l'option.
 function getHtml($readonly=false){
  $title = htmlspecialchars($this->title,ENT_QUOTES);
  $checked = $this->checked ? ' checked="checked" ' : '';
  $disabled = $readonly ? ' disabled' : '';
   
  if( $this->type=='select' ){
   if( sizeof($this->childNodes) ){
    $html = "\t\t".'<optgroup label="'.$this->label.'">'."\n";
    foreach( $this->childNodes as $child ){
     $selected="";
     if($child->checked)
      $selected = "selected";
     $html .= "\t\t\t".'<option '.$selected.' value="'.$child->value.'">'.$child->label.'</option>'."\n";
    }
    $html .= "\t\t</optgroup>\n";
   }else{
    $html = "\t\t".'<option '.$checked.' value="'.$this->value.'">'.$this->label.'</option>'."\n";
   }
  }else{
   $html = "<input type=\"".$this->type."\" $disabled class=\"".$this->type."\" name=\"".$this->name."\" value=\"".$this->value."\" id=\"".$this->id."\" title=\"".$title."\" $checked /> <label id=\"lbl_".$this->id."\" for=\"".$this->id."\" title=\"".$title."\">".htmlspecialchars($this->label)."</label><br />";
   if( $this->hasChildNodes() ){
    $html .= '<div class="childOptions">';
    foreach( $this->childNodes as $child ){
      $html .= $child->getHtml($readonly);
    }
    $html .= '</div>';
   }
  }
  return $html;
 }


Message édité par PIGs_DarkSith le 20-03-2007 à 12:30:17
n°1531000
skeye
Posté le 20-03-2007 à 12:13:10  profilanswer
 

joker. Un paté de code comme ça dont tu avoues que tu n'es pas l'auteur et que tu ne le comprends pas, je refuse de le lire.[:dawao]


---------------
Can't buy what I want because it's free -
n°1531005
PIGs_DarkS​ith
Force Orange
Posté le 20-03-2007 à 12:19:48  profilanswer
 

Ben on m'a demander d'utiliser ces classes pour mes formulaires mais on m'a pas expliqué comment ça marchait vraiment.
J'ai essayé de mettre en rouge ce qui me semblait important.

n°1531006
masklinn
í dag viðrar vel til loftárása
Posté le 20-03-2007 à 12:21:21  profilanswer
 

PIGs_DarkSith a écrit :

on m'a pas expliqué comment ça marchait vraiment.


Et t'as pas songé un instant à chercher, à aller lire des docs toussa? [:banditsuzukixp]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1531008
skeye
Posté le 20-03-2007 à 12:22:20  profilanswer
 

'tain, j'adore me dire qu'il y a des gens pour qui c'est normal de considérer la programmation comme de la magie vaudou...[:pingouino]


---------------
Can't buy what I want because it's free -
n°1531011
PIGs_DarkS​ith
Force Orange
Posté le 20-03-2007 à 12:27:22  profilanswer
 

Citation :

Et t'as pas songé un instant à chercher, à aller lire des docs toussa? [:banditsuzukixp]


On m'a dit que j'avais pas besoin de comprendre comment marchait les classes.
Moi je suis nul en orienté objet, j'ai bien essayé de comprendre mais j'ai du mal.
 
La doc, ben si y'a une quelques part je suis preneur ^^.
 
Bon j'efface ce qui me semble pas important.


Message édité par PIGs_DarkSith le 20-03-2007 à 12:30:37
n°1532988
PIGs_DarkS​ith
Force Orange
Posté le 23-03-2007 à 19:54:46  profilanswer
 

Après avoir bien re-re-regardé le code je pense que mon problème viens de la gestion de l'orienté objet en PHP 5 (en particulier à l'héritage car il semblerait que le soucis vienne avec une classe héritante même si je suis pas doué en OO).
 
Je suis sur un serveur Xamp en PHP 5 et lors de mon stage je travaillais en PHP 4.
 
Est-il possible dans le "php.ini" de faire en sorte que mon serveur Xamp gère l'orienté objet comme si je travaillais en PHP 4 et non en PHP 5 ?
 
Merci d'avance.
 
 
 
 
Edit :
 
    // -- Options utilisateur.
    $opt_util = new htmlOptionGroup();
    while($resultat=mysql_fetch_array($reponse))
     $opt_util->appendChild( new htmlOption('checkbox', 'options_util[]', $resultat['opt_id'], $resultat['opt_nom'], array_key_exists($resultat['opt_id'], $temp_options_util)));    
    $form->addOptionsGroup('options_util[]', 'Modifications :', $opt_util);  
 
Le problème viens des lignes en rouge, si je comment y'a aucun différence. La boucle fonctionne bien par contre, j'ai testé en remplaçant le "$opt_util..." par un echo "test".
 
Donc j'ai soit un soucis soit avec la classes htmlOptionGroup, soit avec la fonction appendChild, soit avec la classe htmlOption... A savoir que les 2 classes sont hérités dans la classes treeNodes à laquelle appartient ma fonction.


Message édité par PIGs_DarkSith le 23-03-2007 à 21:29:42

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

  PHP 4/5 -> Array (pas de liste ?) [Résolu]

 

Sujets relatifs
Communication dll C++ -> code C# (bis) [RESOLU][PHP] Redimensionnement qui écrase les EXIFS d'une image
Réinitialisation vector [RESOLU][c] liste simplement chainé==> pb [résolu==> merci]
[Résolu] Impossible d'installer PHP-MySQL sur mon micro[RESOLU] connection socket
comment envoyer un mail (local en, easy PHP)sans nom de domaine..etc[Résolu] Gros problème de cache
[résolu] Variables dynamiques dans des classes 
Plus de sujets relatifs à : PHP 4/5 -> Array (pas de liste ?) [Résolu]


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