Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (50)
Print (65)
Programmation
PHP (66)
ASP (2)
CSS (26)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (257)
926 Sujets
12256 Réponses
Divers > Blabla > Petit update bis
Petit update bis
 Salut les coquins,
J'ai perdu quelques neurones à mettre en place la balise CODE pour le forum :)
Seule le code PHP / HTML est coloré, si l'on oublie pas de mettre les <? et ?>

Aller, pour le test, je vous file ma "petite" fonction pour générer des Combos en 2 coups de cuillères à pot :

<?
Class ObjCombo
{
    var 
$MySQL_Res "";
    var 
$ComboName "";
    var 
$ComboDebut "";
    var 
$ComboInit "";
    var 
$ComboValBody "";
    var 
$ComboLibelleBody "";
    var 
$ComboCssClasse "";
    
    
/* Valeurs multiples */
    
var $ComboDisplayAll = array();
    var 
$ComboSubmit = array();
    var 
$ComboAddStyle = array();
    
    
/* Méthodes */
    /* 
        AddJSEvent = Ajouter un événement JS 
        exemple : $combo-> AddJSEvent("OnChange","Submit()"); 
        Utilisation multiple
    */
    
function AddJSEvent($Event,$FctConctent
    {
        
$curEvent count($this->ComboSubmit[$Event]);
        if(
$curEvent 0)
        {
            
$this->ComboSubmit[$Event][$curEvent] = $FctConctent;
        }
        else
        {
            
$this->ComboSubmit[$Event][0] = $FctConctent;
        }
    }
    
/* 
        AddDisplayAll = Ajouter une ligne statique dans le Select
        exemple : $combo-> AddDisplayAll("Afficher tout","all"); 
        Utilisation unique
    */
    
function AddDisplayAll($displayTxt,$displayValue
    {
        
$this->ComboDisplayAll['displayValue'] = $displayValue;
        
$this->ComboDisplayAll['displayTxt'] = $displayTxt;
    }
    
/* 
        SetClass = Attribuer au Select une classe CSS
        exemple : $combo-> SetClass("inpClass");
        Utilisation unique
    */
    
function SetClass($Classe
    {
        
$this->ComboCssClasse $Classe;
    }
    
/* 
        SetClass = Ajouter un style personnalisé
        exemple : $combo-> AddCustomStyle("width:120px;");
        Utilisation multiple
    */
    
Function AddCustomStyle($Style)
    {
        
$cur count($this->ComboAddStyle);
        
$this->ComboAddStyle[$cur] = $Style;
    }
    
/* 
        displayCombo = Afficher le combo
        exemple : $combo-> displayCombo($MySQL_Res,"ComboName","Choisir une famille","$_POST['var']","varBody","LibBody");
    */
    
Function displayCombo($MySQL_Res,$ComboName,$ComboDebut,$ComboInit,$ComboValBody,$ComboLibelleBody)
    {
        
$this-> ComboReturn "\n<Select name=\"".$ComboName."\"";
        if(
count($this->ComboSubmit) > 0)
        {            
            foreach (
$this->ComboSubmit as $propertie => $tbTmp)
            {
                
$this-> ComboReturn .= " ".$propertie."=\"";
                
$nb Count($tbTmp);
                For(
$i=0$i $nb$i++)
                {
                    
$this-> ComboReturn .=$tbTmp[$i].";";
                }
                
$this-> ComboReturn .= "\"";
            }
        }
        if(!empty(
$this->ComboCssClasse)) $this-> ComboReturn .= " class=\"".$this->ComboCssClasse."\"";
        if(
count($this->ComboAddStyle) > 0)
        {
            
$this-> ComboReturn .= " Style=\"";
            foreach(
$this->ComboAddStyle as $Style$this-> ComboReturn .= $Style.";";
            
$this-> ComboReturn .= "\"";
        }
        
$this-> ComboReturn .= ">\n";
        if(!empty(
$ComboDebut))
        {
            
$this->ComboReturn.= "\t<option value=\"\">".$ComboDebut."</option>\n";
            
$this->ComboReturn.= "\t<option value=\"\">-------------------------</option>\n";
        }
        if(!empty(
$this->ComboDisplayAll['displayTxt']))
        {
            
$this->ComboReturn.= "\t<option value=\"".$this->ComboDisplayAll['displayValue']."\"";
            if(
$this->ComboDisplayAll['displayValue']==$ComboInit) { $this->ComboReturn.=" Selected"; }
            
$this->ComboReturn.= ">".$this->ComboDisplayAll['displayTxt']."</option>\n";
            
$this->ComboReturn.= "\t<option value=\"\">-------------------------</option>\n";
        }
        
$NbRes MySQL_NumRows($MySQL_Res);
        For(
$iRes=0$iRes $NbRes$iRes++)
        {
            
$Rs MySQL_Fetch_Array($MySQL_Res);
            
$this->ComboReturn.= "\t<option value=\"".$Rs[$ComboValBody]."\"";
            if(!empty(
$ComboInit))
            {
                if(
$Rs[$ComboValBody]==$ComboInit$this->ComboReturn.=" Selected";
            }
            
$this->ComboReturn.= ">".$Rs[$ComboLibelleBody]."</option>\n";
        }
        
$this->ComboReturn.="</Select>\n";
        echo 
$this-> ComboReturn;
    }
}
?>
++ all :)
Posté le 10 08 2006 à 18h46
benzor - Administrateur - www

Réponses - Petit update bis
<< 1 2 >>
gom => ça m'avance pas plus que ça.
Posté le 10 08 2006 à 22h56
koskoz - Membre - www
Alors phosphore un peu....
Posté le 11 08 2006 à 08h35
angel2k - Membre - www
C'est une fonction entièrement paramétrable qui génère un menu déroulant HTML à partir du résultat d'une requête MySQL.
Posté le 11 08 2006 à 08h50
benzor - Administrateur - www
 Donc pour afficher un SELECT nommé 'combocat' de catégorie tu ferais:
<?
$tab_res 
mysql_query("SELECT * FROM categories ORDER BY nom_categorie");
$combo = new ObjCombo();
$combo-> AddCustomStyle("width:120px;");
$combo-> AddCustomStyle("margin-left: 20px;");
$combo-> AddJSEvent("onchange","quelqueChose()");
$combo->displayCombo($tab_res'combocat''choix de la catégorie''''id_categorie''nom_categorie');
?>
Ouais c'est plutot sympa ca tiens, je vais la pécho vu qu'elle est libre d'utilisation. ^^ Le truc encore mieux serait qu'on puisse directement passer la requete dans le premier param et dans la fonction, suivant si c'est un type Result ou String, tu adaptes (1er cas tu fais pareil et deuxieme tu fais d'abord la requete). M'enfin elle est déjà bien foutue c'te fonction. :)
Posté le 11 08 2006 à 09h27
McFly - Membre - www
 McFly > Merki :) C'est exactement ça !
Si tu veux que ton combo reste sélectionné lors du rechargement tu ajoute $_POST['mop'] dans le paramètre $ComboInit :

<? 
$tab_res 
mysql_query("SELECT * FROM categories ORDER BY nom_categorie"); 
$combo = new ObjCombo(); 
$combo-> AddCustomStyle("width:120px;"); 
$combo-> AddCustomStyle("margin-left: 20px;"); 
$combo-> AddJSEvent("onchange","quelqueChose()"); 
$combo->displayCombo($tab_res'combocat''choix de la catégorie'$_POST['combocat'], 'id_categorie''nom_categorie'); 
?> 
Oui elle est bien pratique ma petite fonction, je pense que je la ferais évoluer petit à petit, avec la possibilité par exemple de générer le combo à partir d'un tableau. Si ca vous intéresse je peux poster quelques une de mes fonctions dans le fofo... Autant en faire profiter la commu :)
Posté le 11 08 2006 à 09h53
benzor - Administrateur - www
Sinon, c'est bien mieux le code dans une fenêtre, comme ça, ça ne déforme pas tout.
Posté le 11 08 2006 à 10h35
koskoz - Membre - www
<< 1 2 >>
Sujets Blabla
<< 1 2 ... 21 22 23 24 25 26 >>
Déposer un logo?
Auteur : eg0
Posté le 21 09 2006 à 18h16
5 Réponses (Nouveau sujet)
Sujet visité 1483 fois
a propos du site
Auteur : kodiask
Posté le 21 09 2006 à 20h06
2 Réponses (Nouveau sujet)
Sujet visité 713 fois
Techno Parade ?
Auteur : alienmaster
Posté le 15 09 2006 à 14h29
15 Réponses (Nouveau sujet)
Sujet visité 1327 fois
Concours
Auteur : kodiask
Posté le 13 09 2006 à 12h32
7 Réponses (Nouveau sujet)
Sujet visité 907 fois
Local a partager (...)
Auteur : graphicsbastard
Posté le 15 09 2006 à 22h18
2 Réponses (Nouveau sujet)
Sujet visité 866 fois

Sujet bloqué
Seven's blog.
Auteur : 7777
Posté le 13 09 2006 à 20h49
4 Réponses (Nouveau sujet)
Sujet visité 1193 fois
Formations (...)
Auteur : TheCrow
Posté le 06 09 2006 à 13h40
9 Réponses (Nouveau sujet)
Sujet visité 958 fois
videos délirs
Auteur : kitchen
Posté le 11 09 2006 à 00h00
8 Réponses (Nouveau sujet)
Sujet visité 1234 fois
cherche nom de dj
Auteur : kitchen
Posté le 31 08 2006 à 18h39
34 Réponses (Nouveau sujet)
Sujet visité 2403 fois
Classement (...)
Auteur : Narno
Posté le 08 09 2006 à 16h34
10 Réponses (Nouveau sujet)
Sujet visité 1724 fois
<< 1 2 ... 21 22 23 24 25 26 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006