Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/10/2011, 11h48   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
Par défaut Manipulation des cases à cocher avec Smarty

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
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h07   #2
Expert Confirmé
 
Avatar de krachik
 
Inscription : décembre 2004
Messages : 1 957
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 957
Points : 2 646
Points : 2 646
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 , peux-tu faire voir ton code html dans le template?
__________________
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
krachik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h08   #3
Nouveau Membre du Club
 
Aurélien LEQUOY
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Aurélien LEQUOY

Informations forums :
Inscription : février 2011
Messages : 33
Points : 35
Points : 35
même pas eu le tps de répondre lol =)
Aurélien LEQUOY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h20   #4
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
d'abord je vous remercie d'avoir me repondre assez vite.

voici une partie de fichier tpl

Code :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{foreach item=row from=$produits}
		<tr class="item">
			<td>
				<input type="checkbox" name="selection" value="ProdS" />
			</td>
			<td>
				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action"><img src="{$server_path}extranet/Upload/Produits/Thumb/{$row->photo_produit}" alt="{$row->nom_produit}" title="{$row->nom_produit}"></a>
			</td>
			<td>
				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->libelle_produit}</a>
			</td>
			<td>
				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->nom_fournisseur}</a>
			</td>
			<td>
				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->code_produit}</a>
			</td>
			<td>
				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->nom_produit}</a>
			</td>
			  <td><!--
				{assign var=prop value=""}
				<table style="width: 100%">
					{foreach from=$val item=val1}
						{if $row->id_produit eq $val1->id_produit }
							{if $val1->libelle_prop neq $prop }
								{if $prop neq "" }													
								.</td></tr>														
								{/if}
								<tr>						
								<td valign="top">
								<b>{$val1->libelle_prop} : </b><br/>
								</td>
								<td>					
								{assign var=prop value=$val1->libelle_prop}
							{else}
								, 
							{/if}
						{/if}
						{if $row->id_produit eq $val1->id_produit}
							{$val1->valeur}
						{/if}
					{/foreach}
 
et voici une partie du code de la fonction que je veux créer :
 
ftp_putSelec($conn_id, $src_dirMedium, $dirMedium);      					 //synchronisation des produits
ftp_putSelec($conn_id, $src_dirThumb, $dirThumb);		 					 // synchronisation des thumbs des produits
 
function ftp_putSelec($conn_id, $src_dir, $dst_dir) {						//fonction de synchronisation
 
//******
	$d = dir($src_dir);										
    $condition = true;
	// ICI je souhaite faire un foreach pour recuperer juste les cases cochées pour transferer le resultat du 2eme champs du tableau a $file
	//foreach ($_POST['selection'] as "ProdS" ) {
			echo $tpl->get_template_vars('selection');
			$file = "test_commande.jpg";	//$_POST['photo_produit'];					//recuperation de l'image du produit à synchroniser
	    	$upload = ftp_put($conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY); // chargement
            if (!$upload) {												//si le chargement a rencontré un probleme
        					echo "FTP upload has failed! $file";
        					echo ("<br>");
        					$condition = false;
						  } 
    		else {					 									//si le chargement a reussi OK
    		echo "Le fichier $file a &eacute;t&eacute; transf&eacute;r&eacute; sur le serveur $ftp_server"; 
        	echo ("<br>");
   				 }
 
	// }
    $d->close();
 
if($condition){															//avertissement de reussite de synchronisation
				$etat_sync = "1";
				$message = "Transmission terminée avec succès.";
			  }
else{
$etat_sync = "2";														//avertissement de l'echec de synchronisation
$message = "Un ou plusieurs fichiers n'ont pas été transmis.";
}
echo ("<br \>");
echo $message;  														//affichage d'avertissement 
 
}
 
ftp_close($conn_id);
 
?>
<input type="button" value="Fermer" onclick="window.close()"/>			<!-- Bouton fermer pour quiter la page -->
J'ai deja consulté plusieurs fois la page mentionnée de html_checkboxes mais je n'ai pas arrivé a faire afficher les cases a cocher
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h22   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
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
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 14h10   #6
Expert Confirmé
 
Avatar de krachik
 
Inscription : décembre 2004
Messages : 1 957
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 957
Points : 2 646
Points : 2 646
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" />
sur lequel tu itères sans même changer le value, ça devrait être name="selection[]" et la valeur qui va avec, enfin ça c'est que du HTML

Citation:
J'ai deja consulté plusieurs fois la page mentionnée de html_checkboxes mais je n'ai pas arrivé a faire afficher les cases a cocher
Je ne sais pas quelle version de smarty tu utilises mais pour info dans la version 3.1.3 sortie récemment:
Citation:
- improvement html_checkboxes and html_radios to accept null- and object values, and label_ids attribute
__________________
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
krachik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 14h28   #7
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
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}
et dans le code d'affichage je met

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
//traitement
$produit = new Produit();
$produits = $produit->getList();
$val = $produit->getListwithprop();

$tpl = new SmartyYPS();
$tpl->setExtranetScripts(array('tablefilter.js','sortable.js'));
$tpl->assign("page_name","Page d'administration : Liste des produits");
$tpl->assign("produits",$produits);
$smarty->assign('prods', $produits);
$tpl->assign("chemin" , "> Produits");
$tpl->assign("val",$val);
$tpl->display("ext/liste_produit.tpl");
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 22h14   #8
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
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 :
1
2
3
4
5
6
...
$produits = array(1 => 'decapant', 2 => 'pince', 3 => 'ampoule');
$selected = 2;
$oSmarty->assign('produits', $produits);
$oSmarty->assign('selected', $selected);
...
Ensuite côté template :

Code :
{html_checkboxes name='id_produit' options=$produits selected=$selected separator='<br />'}
Le résultat :

Code :
1
2
3
<label><input type="checkbox" name="id_produit[]" value="1" />decapant</label><br />
<label><input type="checkbox" name="id_produit[]" value="2" checked="checked" />pince</label><br />
<label><input type="checkbox" name="id_produit[]" value="3" />ampoule</label><br />
Donc, si je reprends ton exemple, il faudrait que aies une idée de la structure de la variable $produits :

Code :
1
2
3
4
...
$produits = $produit->getList();
var_dump($produits);
...
Voilà... @ suivre
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 14h08   #9
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
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 )
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 15h17   #10
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Citation:
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.
Je ne comprends pas... c'est une case par produit ou plusieurs cases par produit ?
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 15h28   #11
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
Je souhaite avoir une seule case a cocher par produit
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 15h36   #12
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
tu peux faire un var_dump() de ton tableau de produits ?
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 15h45   #13
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
voici les 4 ers éléments du resultat de var_dump() de la variable produits
Code :
1
2
 
array(828) { [0]=> object(stdClass)#6 (18) { ["produit_largeur"]=> string(1) "0" ["produit_hauteur"]=> string(1) "0" ["capacite"]=> string(1) "1" ["id_produit"]=> string(2) "50" ["id_tproduit"]=> string(1) "8" ["nom_produit"]=> string(15) "GALLERY Support" ["prix_produit"]=> string(3) "300" ["photo_produit"]=> string(21) "813220_yapas17107.jpg" ["libelle_produit"]=> string(11) "Accessoires" ["impression"]=> string(1) "0" ["gestion_stock"]=> string(1) "1" ["stock"]=> string(1) "1" ["web"]=> string(1) "1" ["promo"]=> string(1) "0" ["code_produit"]=> string(10) "306008-009" ["qstock"]=> string(2) "15" ["id_fournisseur"]=> string(1) "2" ["nom_fournisseur"]=> string(5) "Umbra" } [1]=> object(stdClass)#7 (18) { ["produit_largeur"]=> string(1) "0" ["produit_hauteur"]=> string(1) "0" ["capacite"]=> string(3) "700" ["id_produit"]=> string(3) "122" ["id_tproduit"]=> string(1) "8" ["nom_produit"]=> string(14) "CD VIERGE SONY" ["prix_produit"]=> string(2) "10" ["photo_produit"]=> string(21) "911810_yapas17317.jpg" ["libelle_produit"]=> string(11) "Accessoires" ["impression"]=> string(1) "0" ["gestion_stock"]=> string(1) "1" ["stock"]=> string(1) "1" ["web"]=> string(1) "1" ["promo"]=> string(1) "0" ["code_produit"]=> string(6) "CDSONY" ["qstock"]=> string(2) "98" ["id_fournisseur"]=> string(1) "4" ["nom_fournisseur"]=> string(6) "Divers" } [2]=> object(stdClass)#8 (18) { ["produit_largeur"]=> string(1) "0" ["produit_hauteur"]=> string(1) "0" ["capacite"]=> string(1) "0" ["id_produit"]=> string(3) "236" ["id_tproduit"]=> string(1) "8" ["nom_produit"]=> string(28) "Clé USB Kingston 8 GB" ["prix_produit"]=> string(3) "300" ["photo_produit"]=> string(21) "506752_yapas17072.jpg" ["libelle_produit"]=> string(11) "Accessoires" ["impression"]=> string(1) "0" ["gestion_stock"]=> string(1) "1" ["stock"]=> string(1) "1" ["web"]=> string(1) "1" ["promo"]=> string(1) "0" ["code_produit"]=> string(7) "USBK8GB" ["qstock"]=> string(1) "1" ["id_fournisseur"]=> string(1) "4" ["nom_fournisseur"]=> string(6) "Divers" } [3]=> object(stdClass)#9 (18) { ["produit_largeur"]=> string(1) "0" ["produit_hauteur"]=> string(1) "0" ["capacite"]=> string(1) "0" ["id_produit"]=> string(3) "342" ["id_tproduit"]=> string(1) "8" ["nom_produit"]=> string(7) "Kit USB" ["prix_produit"]=> string(3) "100" ["photo_produit"]=> string(21) "527190_yapas17081.jpg" ["libelle_produit"]=> string(11) "Accessoires" ["impression"]=> string(1) "0" ["gestion_stock"]=> string(1) "1" ["stock"]=> string(1) "1" ["web"]=> string(1) "1" ["promo"]=> string(1) "0" ["code_produit"]=> string(6) "KITUSB" ["qstock"]=> string(1) "0" ["id_fournisseur"]=> string(1) "4" ["nom_fournisseur"]=> string(6) "Divers" }
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 19h17   #14
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
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] }
dans mon code PHP :
Code :
$tpl->assign("produis",$produits);
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.
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 21h43   #15
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Si tu veux qu'on t'aide alors un :
dans le fichier synchroProd.php serait un plus...
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 10h35   #16
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
Bonjour Eric,
J'ai fais ce que vous m'avez dis : la fonction var_dump($_REQUEST) m'a donné le resultat suivant :
Code :
1
2
3
4
5
6
7
Warning: ftp_chmod() [function.ftp-chmod]: Command not implemented for that parameter in E:\ypd\www\ext\synchro-prodSelec.php on line 21

array(7) { ["tf_com"]=> string(24) " , , , , , , , , , , ,11" ["tf_prods"]=> string(30) " , , , , , , , , , , , , , ,14" ["tf_users"]=> string(26) " , , , , , , , , , , , ,12" ["tf_rep"]=> string(34) " , , , , , , , , , , , , , , , ,16" ["__utma"]=> string(55) "171588776.1774662639.1315328291.1315565802.1315567701.4" ["__utmz"]=> string(70) "171588776.1315328291.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" ["PHPSESSID"]=> string(26) "s6l9j4m152e2muineuk09qp9q4" }


Un ou plusieurs fichiers n'ont pas �t� transmis.
array(7) { ["tf_com"]=> string(24) " , , , , , , , , , , ,11" ["tf_prods"]=> string(30) " , , , , , , , , , , , , , ,14" ["tf_users"]=> string(26) " , , , , , , , , , , , ,12" ["tf_rep"]=> string(34) " , , , , , , , , , , , , , , , ,16" ["__utma"]=> string(55) "171588776.1774662639.1315328291.1315565802.1315567701.4" ["__utmz"]=> string(70) "171588776.1315328291.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" ["PHPSESSID"]=> string(26) "s6l9j4m152e2muineuk09qp9q4" }
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 14h32   #17
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
J'ai fait le test avec le même exemple que je t'ai donné :

Dans le fichier source :

Code :
1
2
3
<label><input type="checkbox" name="id_produit[]" value="1" />decapant</label><br />
<label><input type="checkbox" name="id_produit[]" value="2" checked="checked" />pince</label><br />
<label><input type="checkbox" name="id_produit[]" value="3" />ampoule</label><br />
Donne dans le fichier de destination :

Code :
1
2
3
4
5
6
// Les deux premières valeurs ont été sélectionnées...
array
  'id_produit' => 
    array
      0 => string '1' (length=1)
      1 => string '2' (length=1)
C'est cela que tu dois obtenir.

@+
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 19h12   #18
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
voici le code de mon fichier tpl

Code :
{html_checkboxes name="selection" values=$produis->id_produit[]  selected=$produis->id_produit[1]}
voici le code php qui affiche les cases a cocher :
Code :
$tpl->assign("produis",$produits);
voici le code généré par le navigateur de mes case a cocher
Code :
1
2
3
4
 
<label><input type="checkbox" name="selection[]" value="Array-&gt;id_produit[]" /></label>
<label><input type="checkbox" name="selection[]" value="Array-&gt;id_produit[]" /></label>
<label><input type="checkbox" name="selection[]" value="Array-&gt;id_produit[]" /></label>
et voici le résultat de
Code :
1
2
3
4
5
6
7
 
array(7) { ["tf_com"]=> string(24) " , , , , , , , , , , ,11" 
["tf_prods"]=> string(30) " , , , , , , , , , , , , , ,14" 
["tf_users"]=> string(26) " , , , , , , , , , , , ,12" 
["tf_rep"]=> string(34) " , , , , , , , , , , , , , , , ,16" 
["__utma"]=> string(55) 171588776.1774662639.1315328291.1315565802.1315567701.4" ["__utmz"]=> string(70) "171588776.1315328291.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" 
["PHPSESSID"]=> string(26) "s6l9j4m152e2muineuk09qp9q4" }
a votre avis , pourquoi je n'ai pas de résultats comme les votre ?
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 21h56   #19
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
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]}
Devrait donner :

Code :
{html_checkboxes name="id_produit" values=$produis->id_produit}
Ce qui devrait te permettre de récupérer en php (dans le script de destintation) qqch du genre :
Code :
1
2
3
4
5
array
  'id_produit' => 
    array
      0 => string '1' (length=1)
      1 => string '2' (length=1)
Pour la sélection c'est une autre histoire, a mon avis règle d'abord le pb de HTML > PHP.

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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 15h51   #20
Invité de passage
 
Inscription : septembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 36
Points : 4
Points : 4
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 :
1
2
 
{html_checkboxes name='selection' values={$row->id_produit} }
voici l'erreur affiché

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
comme tu voix la ligne suivante :
Code :
<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->libelle_produit}</a>
génère le résultat suivant
Code :
<a href="form_update_produit.php?id_produit=122" class="action">Accessoires</a>
et c'est exactement ce que je cherche.

j'ai réussi a l'avoir par les balises
Code :
<INPUT type="checkbox" name="nom" value={$row->id_produit}>
de HTML qui affiche le resultat suivant :
Code :
<INPUT type="checkbox" name="nom" value=122>
mais je n'arrive pas a le faire fonctionner avec les html_checkboxes de smarty
lajmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h48.


 
 
 
 
Partenaires

Hébergement Web