Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 08/12/2011, 15h41   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 1
Points : 1
Par défaut Gestion des checkbox avec mysql en smarty

Bonjour à tous,

Sur une boutique e-commerce Prestashop donc propulsé par smarty, j'aimerais permettre à mes clients de choisir les langues qu'ils parlent via des checkbox mais je bloque.
J'ai une table "customer", et 3 champs "english", "french" et "german".
Si la case est cochée en BDD les champs prennent la valeur 1 sinon 0.
J'arrive à cocher la case en fonction de la valeur en mysql pas de problèmes de ce côté là mais mon problème est à l'enregistrement, voici mon code, si vous avez une idée n'hésitez pas merci beaucoup d'avance.

Mon formulaire HTML :

Code :
1
2
3
<label><input type="checkbox" name="english" value="1" {if $lang1 == 1}checked="checked"{/if}>&nbsp;{l s='English'}</label>
		<label><input type="checkbox" name="french" value="1" {if $lang2 == 1}checked="checked"{/if}>&nbsp;{l s='French'}</label>
		<label><input type="checkbox" name="german" value="1" {if $lang3 == 1}checked="checked"{/if}>&nbsp;{l s='German'}</label>
Mon code PHP pour la langue anglaise par exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(!empty($_POST['english']) )
{
	$english = 1;
}
else
{
	$english = 0;
}
 
//Modification en fonction des données
$result = Db::getInstance()->Execute('
		UPDATE customer SET
		english = "'.$english.'"
		WHERE id_customer = "'.$id_customer_cookie.'"
');
SVPPPPP
GuilVIII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 16h39   #2
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Bonjour,

tu pourrais mettre la source de ton formulaire STP (une fois en page web affichée par l'utilisateur), ainsi que dire si tu as un retour mysql (erreur ?)
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 17h11   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 1
Points : 1
Merci de ta réponse. Mon formulaire est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form action="" method="post" enctype="multipart/form-data" class="std profile_style_black">
    	{l s='I speak'} :<br />
    	<label><input type="checkbox" name="english" value="1" {if $lang1 == 1}checked="checked"{/if}>&nbsp;{l s='English'}</label>
		<label><input type="checkbox" name="french" value="1" {if $lang2 == 1}checked="checked"{/if}>&nbsp;{l s='French'}</label>
		<label><input type="checkbox" name="german" value="1" {if $lang3 == 1}checked="checked"{/if}>&nbsp;{l s='German'}</label>
 
		<p class="required text">
			<label>{l s='Job'} :</label>
			<input type="text" name="job" value="{$info_job}" />
		</p>
		<p class="required text">
			<label>{l s='City'} :</label>
			<input type="text" name="city" value="{$info_city}" />
		</p>
		<p class="required text">
			<label>{l s='Favourites Designers'} :</label>
			<input type="text" name="fd" value="{$info_favorite_de}" />
		</p>
		<p class="submit">
			<input type="submit" class="button profile_upload_button" name="send_info" value="{l s='SEND'}" style="padding-left: 0%;" />
		</p>
	</form>
GuilVIII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 18h45   #4
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Normalement, ta valeur english passe bien.
Fais un echo $_POST['english'], tu verras le 1, si ta case est cochée.

Je pencherais plus sur un souci avec le $id_customer_cookie qui doit pas être récupéré, et donc pas de where possible dans ton sql.

Regarde de ce coté.
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h36   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 1
Points : 1
Pour checker si la case est cochée j'ai déjà une requête pour prélever la valeur des tables et afficher les cases cochées si la valeur est 1.

Je ne pense pas que le problème vienne de $id_customer_cookie car j'ai d'autres formulaires dans la même page qui utilise la même variable et ils marchent tous nickel...
GuilVIII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 07h38   #6
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Bonjour,

Alors fais ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(!empty($_POST['english']) )
{
	$english = 1;
}
else
{
	$english = 0;
}
die("UPDATE customer SET
		english = '$english'
		WHERE id_customer = '$id_customer_cookie'");
//Modification en fonction des données
$result = Db::getInstance()->Execute('
		UPDATE customer SET
		english = "'.$english.'"
		WHERE id_customer = "'.$id_customer_cookie.'"
');
et vois ce que cela affiche.
si la requete est affichée normalement, execute là dans ton phpmayadmin (ou autre).
__________________
NginX, SphinxSearch Addict !!
lenono 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 01h01.


 
 
 
 
Partenaires

Hébergement Web