|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
Bonjour tous le monde,
Je viens de decouvrir Smarty tres recemment. Je souhaite ajouter une case a cocher dans un tableau. le tableau est bien affiché avec la case a cocher. Maintenant je veux faire un traitement pour les lignes sélectionnées ( cases cochées ) mais je n'arrive pas a récupérer le résultat de mes cases a cocher dans mon code PHP dans mon fichier tpl, j'ai utilisé un code html car je n'arrive pas a faire apparaitre les case a cocher par la fonction html_chokboxes : <input type="checkbox" name="selection" value="ProdS" /> mais comment récupérer le résultat de la case a cocher ? j'ai essayé d'utiliser la fonction : echo $tpl->get_template_vars('selection'); et je reçois le message d'erreur suivant : Fatal error: Call to a member function get_template_vars() on a non-object in E:\wamp\www\ext\synchro-prodSelec.php on line 39 Merci pour votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2004 Messages : 1 957 ![]() |
Bonjour,
Pour utiliser html_checkboxes c'est simple => http://www.smarty.net/docsv2/fr/lang...checkboxes.tpl Tu sais ce que fait get_template_vars() ? Pour récupérer les états des checkbox c'est juste une simple opération de récupération à la soumission du formulaire
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! ! Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Aurélien LEQUOY Inscription : février 2011 Messages : 33 ![]() |
même pas eu le tps de répondre lol =)
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
d'abord je vous remercie d'avoir me repondre assez vite.
voici une partie de fichier tpl Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
j'ai trouvé la fonction get_template_vars() dans un forum et j'ai essayé de l'utiliser. c'est un peu bete Mais c'est comme ça
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Inscription : décembre 2004 Messages : 1 957 ![]() |
html_checkboxes est pratique quand t'as un groupe case à cocher à utiliser et donc tu lui passera un tableau de données.
tu dis que t'y arrives pas à les afficher, fais voir le code que tu utilises pour les afficher? Dans le code tpl que tu fourni j'ai vu que Code :
<input type="checkbox" name="selection" value="ProdS" /> Citation:
Citation:
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! ! Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells |
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
j'utilise Smarty version 2.6.18
le code que j'utilise est le suivant dans le fichier tpl Code :
{html_checkboxes name='Selection' values=$ProdS} Code :
|
||
|
|
00
|
|
|
#8 | ||||||
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Bonjour,
Alors c'est pas compliqué... mais tu as différentes façons de faire en voici une : Ta fonction utilisateur html_checkboxes (dans le template) a besoin d'un ensemble de données type tableau associatif où l'ID est la clé et l'intitulé est la valeur. Côté PHP cela donne cela par exemple : Code :
Code :
{html_checkboxes name='id_produit' options=$produits selected=$selected separator='<br />'} Code :
Code :
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
||||||
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
Merci pour votre aide précieux.
Pour vous mettre dans mon contexte : j'ai une table produit . je l'affiche avec la méthode de la classe produit produit->getList() dans un tableau (ceci est déjà fait par quelqu'un) Maintenant je veux ajouter une case a cocher devant chaque produit (chaque ligne), je me base sur la colonne id_produit qui est sous forme de 242,244,246,... la table produit contient id_produit, libelle_produit, photo_produit, ... j'ai essayé de créer mes propres values pour les case a cocher mais ça ne marche pas : soit une dizaine de case a cocher devant chaque produit ou une case a cocher pour certains, deux pour d'autres, 3 , 4 et le programme se plante dans une boucle infinie. le but de ma fonction est : sélectionner les produits a synchroniser (synchro FTP ) |
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Citation:
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
Je souhaite avoir une seule case a cocher par produit
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
tu peux faire un var_dump() de ton tableau de produits ?
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
voici les 4 ers éléments du resultat de var_dump() de la variable produits
Code :
|
||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
J'ai arrivé a résoudre la moitié de mon problème, c'est l'affichage via html_checkboxes , voici la partie du code de mon template :
Code :
{html_checkboxes name="selection" values=$produis->id_produit[] selected=$produis->id_produit[1] } La partie qui me reste maintenant c'est comment je peux récupérer le résultat des cases cochées dans ma fonction PHP situé dans un fichier nommé synchroProd.php sachant que le fichier dont j'ai défini le code ci-dessus s'appelle liste_prod.php. Je compte sur votre aide pour résoudre ce problème. |
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Si tu veux qu'on t'aide alors un :
dans le fichier synchroProd.php serait un plus...
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
Bonjour Eric,
J'ai fais ce que vous m'avez dis : la fonction var_dump($_REQUEST) m'a donné le resultat suivant : Code :
|
||
|
|
00
|
|
|
#17 | ||||
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
J'ai fait le test avec le même exemple que je t'ai donné :
Dans le fichier source : Code :
Code :
@+
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
||||
|
00
|
|
|
#18 | ||||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
voici le code de mon fichier tpl
Code :
{html_checkboxes name="selection" values=$produis->id_produit[] selected=$produis->id_produit[1]} voici le code généré par le navigateur de mes case a cocher Code :
Code :
|
||||
|
|
00
|
|
|
#19 | ||
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Alors plusieurs choses
La récupération des valeurs n'est pas bonne ainsi : Code :
{html_checkboxes name="selection" values=$produis->id_produit[] selected=$produis->id_produit[1]} Code :
{html_checkboxes name="id_produit" values=$produis->id_produit} Code :
Ensuite pour tes tests essaie de virer tout ce qui est parasite... (fais des essais à part par exemple... c'est comme ça que je fais pour tester ton code). Dernière chose, quand tu regardes ton code source (page d'origine) es-tu bien dans un bloc formulaire ? : Code :
<form action="synchroProd.php">...</form>
__________________
Eric POMMEREAU Articles : Smarty, JpGraph, Ajax YUI, IPython, Design patern strategy en PHP, Firebug Site : Antiquités du Marché des Ternes |
||
|
00
|
|
|
#20 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 36 ![]() |
Bonjour Eric,
j'ai basé sur les autres champs pour detecter mon probléme, mais j'ai rencontré un autre probleme. Ou est l'erreur dans cette ligne a votre avis : Code :
Code :
Catchable fatal error: Object of class stdClass could not be converted to string in E:\ypd\www\Smarty\templates_c\%%2D^2DF^2DF36CAC%%liste_produit.tpl.php on line 106 Code :
<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->libelle_produit}</a> Code :
<a href="form_update_produit.php?id_produit=122" class="action">Accessoires</a> j'ai réussi a l'avoir par les balises Code :
<INPUT type="checkbox" name="nom" value={$row->id_produit}> Code :
<INPUT type="checkbox" name="nom" value=122> |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com