Checkbox, session php

Résolu/Fermé
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007 - 8 juin 2007 à 14:25
 walad54 - 22 oct. 2007 à 13:44
Bonjour a tous :)

Voilà j'ai un formulaire qui affiche une liste de produit (résultat d'un requête), avec des check box a coté pour les sélectionner. Mon but est que l'utilisateur puisse les sélectionner (un peut comme sur un site de commande en ligne), puis en cliquant sur un bouton ça affichera une nouvelle page avec les produits qui on été sélectionner via les check box, et là on pourra saisir d'autre information sur les produits comme la quantité.

J'utilise donc une session pour passer de la désignation des produits sélectionnés dans les check box, a la page d'après. Mais cette seconde page n'affiche rien :/

La variable de check box est un tableau (name="selection[]"), comment est ce que je peut faire pour la rentrer ma variable de session, et la ressortir ?

Je mettrait des bouts de mon code si nécessaire, merci :)

15 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
8 juin 2007 à 20:29
salut,

tu peux nous montrer le formulaire et le script de traitement ou nous en dire plus s'il te plait ?
la deuxième page n'affiche rien, ok, mais qu'est-ce que tu lui demandes d'afficher et surtout comment ?!
0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
9 juin 2007 à 12:39
J'affiche une liste de produit résultat d'une requête, avec une checkbox a coté.

while ($data['desiprod']=mysql_fetch_array($result))
{
echo $data['desiprod']['desiprod'].'<input type="checkbox" name="selection[]" value="'.$data['desiprod']['desiprod'].'"><br/><br/>';
}

Après l'envoi par post des checkbox, ma variable de session en est assigné.

if(!empty($_POST['selection[]']))
{
$_SESSION['comm']=$_POST['selection[]'];
}

echo'<br/><br/><input type="submit" name="envoi" onclick="submit()">';

Et sur la deuxième page j'affiche la valeur des checkbox sélection :

echo $_SESSION['comm'];


Est ce que je suis assé clair ? ^^
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 juin 2007 à 15:55
salut,

désolé j'avais oublié et personne n'a palier mon absence…
tu es toujours dans la pannade ?

le 'onclick="submit()"' est inutile mais c'est pas le principal.

ton 'echo $_SESSION['comm']; ' doit écrire 'Array' sur ta page.
est-ce la cas ?

pour exploiter ce tableau il faut "boucler" dessus :
for each ($_SESSION['comm'] as $value) {
     echo( $value );
}


ou est-ce que tu places ceci :
if(!empty($_POST['selection[]']))
{
$_SESSION['comm']=$_POST['selection[]'];
} 

il doit être au début de la deuxième page. je te demande parce que en dessous tu as tapé le <input type"submit">
0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
10 juin 2007 à 17:30
J'avais testé avec un for each, mais je viens de m'apercevoir d'une faute de syntaxe, donc je vais essayer ça dès que possible. Là je ne peut pas vraiment tester, c'est un travail pour un stage et toute la bdd est labà :/

Je ne comprend pas pourquoi tu dit que le submit onclick="submit()" est inutile, je ne suis pas obligé de me renvoyer le formulaire pour récupérer les cases cochés ?

Après pour la variable de session, je l'avais mise dans ma première page, comme présenté dans mon post. Je vais la mettre dans la deuxième page.

En tout cas merci pour ton aide, je vais essayer de finir ça :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 juin 2007 à 18:50
pour le 'submit', un <input> de type 'submit' est fait pour envoyer le formulaire, donc au clic il envoie, pas besoin de coder l'évènement 'onClick'.
tu peux regarder là.
0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
11 juin 2007 à 09:48
Quand j'affiche selement ma variable de session sur la seconde page, elle n'affiche pas "Array". Est ce que je devrait lui affecté sa valeur dans ce genre $_SESSION['comm']= array($_POST['selection[]']) ? Déja éssayer sans succés.

Pour la boucle foreach, je n'arive pas a la faire marcher, en écrivant foreach (comme j'ai vu sur des tuto) il me dit que l'argument n'est pas valide "Invalid argument supplied for foreach()". Donc je présume qu'il ne comprend pas $_SESSION['comm'] comme un tableau. On revien au premier point :/

$_POST['selection'] affiche bien Array, mais je n'arive pas a la mettre dans ma variable de session. Après test, j'arive au résultat que je veut sans la variable de session (c'est a dir juste en affichant le $_POST), mais je compte réutiliser la valeur dans un autre page, donc si il ya une solution je post mon résultat actuel de ma deuxième page :

<?php
foreach($_POST['selection'] as $prod)
{
echo $prod;
}
?>
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
11 juin 2007 à 11:28
et avec :
$_SESSION['comm'][]=$_POST['selection'];

0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
11 juin 2007 à 12:00
ma deuxième page :

<?php
if(!empty($_POST['selection[]']))
{
$_SESSION['comm'][]= $_POST['selection'];
}

foreach( $_SESSION['comm'][] as $prod )
{
echo $prod;
}
?>

Ca met "Invalid argument supplied for foreach()". La première page est simple, je ne pense pas qu'une erreur vienne de son code.
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
11 juin 2007 à 12:36
pour l'assignation tu ajoutes les crochets au bout pour indiquer que tu crées un tableau.
$_SESSION['comm'][]=$_POST['selection'];


mais pour boucler dessus, non.
 foreach( $_SESSION['comm'] as $prod )
{
echo $prod;
} 

je suppose que ça devrait fonctionner. enfin, j'espère…
-;o)
0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
11 juin 2007 à 14:05
Ca m'affiche encore "Array" ^^ , la variable de session marche bien, elle m'affiche un Array pour chaque éssai que je fait. Enfin je vois pas, j'ai fouillé tout les tuto du net que j'ai pus trouvé, je voi pas mon erreur :/

Je continu de chercher, je posterai dès que j'aurai trouvé ^^
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
11 juin 2007 à 14:10
donc tu as mis le tableau en première ligne d'un tableau.
j'ai du mal en php…
-;o)

donc il faut revenir à :
$_SESSION['comm']=$_POST['selection'];

0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
11 juin 2007 à 14:15
Rofl j'en revien pas d'être resté bloqué la dessus si longtemps juste pour des petits crochets :'(

Merci a toi Dalida !!! ^^
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
11 juin 2007 à 14:19
moi j'en reviens pas d'être aussi mauvais en php !!!
-:oD

quand j'ai commencé on m'a dit "apprend bien à manipuler les tableaux, dans php c'est important".
j'ai pas écouté…
0
Ziwy Messages postés 16 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 11 juin 2007
11 juin 2007 à 14:53
On est deux comme ca ;)
0
bonjour
merci pour votre eclairage
je voudrais vous poser des questions sil vous plait
je voudrais savoir comment ca marche session et comment l utiliser pour creer un panier
esseyez s'il vous plait de m'expliquer en detaille
merci
0