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 :

[Smarty] Récupération de checkbox


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Par défaut [Smarty] Récupération de checkbox
    Hi all,

    Décidement, je suis le seul à avoir des problèmes sous Smarty apparement

    Donc, mon problème maintenant est de cocher des checkboxes à l'affichage de ma page.
    En clair, j'ai un formulaire qui liste sous forme de checkboxes un certain nombre de logiciels installés sur un ordinateur. A l'ajout du formulaire, je n'ai pas de soucis, je recupère les id que je stocke dans une table.

    Mon problème survient lorsque je souhaite modifier ces données. J'aimerai qu'à l'affichage de la page, mes checkboxes donc l'id est dans la base soit cochées...

    Voici mes codes :

    Fichier tpl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Liste des logiciels : 
    {html_checkboxes name=logicielChecked values=$checkboxLogicielIndex output=$checkboxLogicielNom labels=true separator="<br />" selected=logicielChecked.idLogiciel}
    Fichier php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Recuperation des logiciels installes
    	$params = array("table" => "compose", "champs" => "idLogiciel");
     
    	$condition = array();
    	$condition[] = new proprieteClass("idMachine", "=", $idServeur, VARIABLE);
     
    	//Envoi de la requete
    	$tableAff2 = new tableClass();
    	$resultatLog = $tableAff2->getTable($params, $condition,1);
    	echo "test : ".$resultatLog[1][idLogiciel];
    	//Assignation des valeurs
    	$smarty->assign("logicielChecked", $resultatLog);	
    }
    J'ai essayé pas mal de trucs différents, c'est pourquoi mon code actuel ne doit pas être très cohérent...

  2. #2
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Bonjour,

    Je ne vois pas trop comme ça ...

    Peux tu faire un debug smarty dans ton html ({debug}) et poster le résultat ?

    @+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Par défaut
    Je crois que tu as pointé le doigt sur quelque chose eric...

    Voici mon debug :
    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
    25
    26
    27
    28
    29
    30
    {$checkboxLogicielIndex}  	Array (9)
    1 => "6"
    2 => "1"
    3 => "3"
    4 => "5"
    5 => "4"
    6 => "10"
    7 => "7"
    8 => "9"
    9 => "8"
    {$checkboxLogicielNom} 	Array (9)
    1 => "Adobe Photoshop"
    2 => "Logiciel 1"
    3 => "Logiciel 3"
    4 => "Logiciel Ordi"
    5 => "Logiciel Serveur"
    6 => "Mac OS X"
    7 => "Macromedia DreamWeaver"
    8 => "Windows Vista"
    9 => "Windows XP Pro"
    {$logicielChecked}  	Array (3)
    1 => Array (2)
      0 => "3"
      idLogiciel => "3"
    2 => Array (2)
      0 => "1"
      idLogiciel => "1"
    3 => Array (2)
      0 => "6"
      idLogiciel => "6"

    Sinon, voici le code source généré aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <label><input type="checkbox" name="logicielChecked[]" value="6" />Adobe Photoshop</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="1" />Logiciel 1</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="3" />Logiciel 3</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="5" />Logiciel Ordi</label><br />
     
    <label><input type="checkbox" name="logicielChecked[]" value="4" />Logiciel Serveur</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="10" />Mac OS X</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="7" />Macromedia DreamWeaver</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="9" />Windows Vista</label><br />
    <label><input type="checkbox" name="logicielChecked[]" value="8" />Windows XP Pro</label><br />

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Par défaut
    Waouh, enfin, vendredi soir, 17h15

    Le problème venait du fait que je lui passais un tableau associatif, alors que Smarty attendait un tableau simple.
    Ajouté à cela une faute de syntaxe corrigée, et le problème est résolu. Donc voici le code final et correct

    Dans mon template (j'avais oublié le $ avant "logicielChecked", grrrr):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {html_checkboxes name=logicielChecked values=$checkboxLogicielIndex output=$checkboxLogicielNom labels=true separator="<br />" selected=$logicielChecked}
    Et mon code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //Envoi de la requete
    		$tableAff2 = new tableClass();
    		$resultat = $tableAff2->getTable($params, $condition);
     
    		//récuperation des logiciels coches
    		$resultatLog = array();
    		for($i=0 ; $i < $tableAff2->nb_items ; $i++){
    			array_push($resultatLog, $resultat[$i][idLogiciel]);
    		}
     
    		//Assignation des valeurs
    		$smarty->assign("logicielChecked", $resultatLog);
    Voilà, si ça peut en aider d'autres

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

Discussions similaires

  1. récupération valeur checkbox dans BDD
    Par polux31 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 30/03/2011, 10h15
  2. récupération depuis checkbox
    Par salah_bousbia dans le forum Langage
    Réponses: 2
    Dernier message: 22/05/2008, 17h57
  3. [Tableaux] Récupération multiples checkbox
    Par masseur dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2007, 17h34
  4. [XMLGRAM] Récupération de checkbox
    Par eric.pommereau dans le forum XMLRAD
    Réponses: 5
    Dernier message: 25/07/2007, 22h25
  5. pb récupération données checkbox
    Par maysa dans le forum Langage
    Réponses: 3
    Dernier message: 06/12/2006, 12h02

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