Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 28/07/2006, 17h25   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 7
Points : 1
Points : 1
Par défaut Demande de l'aide ou conseil

Bonjour,

Voilà, pour commencer, je ne sais pas si c'est bien là où je devrais poster mon message. Si non, il sera gentil de m'indiquer l'endroit où je pourais le faire.

Ok, si de suite mon problème :

Je travail maintenant avec un système panier assez simple. Il est construit de cette façon : " Gammes " => " Sous-gammes " => " Produits ". Bien, pour cette organisation pas de problème.

Le problème a surjit lorsque le client nous a donner un nouveau critère. Celui-là dit que le produit se constitut lui aussi de " sous-produits ", qu'il n'a pas de prix et que les " sous-produits " qui ont les prix.

Pour comprendre comment ça marche, un exemple facilitera la tâche :

1. " Une chambre " est représenté en tant que " produit ";
2. " Lit, placards, armoires, rangements... " sont les " sous-produit ";
3. Un utilisateur peu ajouter à son panier le produit, donc automatiquement ce sont les sous-produits qui seront calculer.


Ce que je veux savoir, est comment faire pour une fois le produit ajouter, l'ajout des sous-produits se fera automatiquement. aussi l'utilisateur voudra aussi ajouter la quantité du " produit " ou bien celle du " sous-produit ".

Voila une image pour aider :



A vrai dire je suis bloqué

J'ai pensé à mettre l'id des " sous-produit " ds des case à cocher.

le code initiale pour ajouté un produit était :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
include("../configuration.inc.php");
 
$_SESSION['caddie']->ajout($leprod, $_REQUEST['qte']);
$_SESSION['caddie']->nettoie();
$_SESSION['caddie']->recalc_total();
 
$HTTP_REFERER = $_SERVER['HTTP_REFERER'];
 
if (!empty($HTTP_REFERER)) {
    header("Location: $HTTP_REFERER");
} else {
    header("Location: $wwwroot/index.php");
}
byokyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 17h33   #2
Invité de passage
 
Inscription : juillet 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 7
Points : 1
Points : 1
pardon, une erreur à réctifier ds le code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include("../configuration.inc.php");
 
$_SESSION['caddie']->ajout($_REQUEST['id'], $_REQUEST['qte']);
$_SESSION['caddie']->nettoie();
$_SESSION['caddie']->recalc_total();
 
$HTTP_REFERER = $_SERVER['HTTP_REFERER'];
 
if (!empty($HTTP_REFERER)) {
    header("Location: $HTTP_REFERER");
} else {
    header("Location: $wwwroot/index.php");
}
?>
Je continue,

J'ai modifié ce code en :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include("../configuration.inc.php");
 
foreach($_REQUEST['id'] as $leprod) {
 
    $_SESSION['caddie']->ajout($leprod, $_REQUEST['qte']);
    $_SESSION['caddie']->nettoie();
    $_SESSION['caddie']->recalc_total();
 
}
$HTTP_REFERER = $_SERVER['HTTP_REFERER'];
 
if (!empty($HTTP_REFERER)) {
    header("Location: $HTTP_REFERER");
} else {
    header("Location: $wwwroot/index.php");
}
?>
Cependant, il me donne cette erreur quand je clique sur " Ajouter au panier " :

Warning: Invalid argument supplied for foreach() in e:\g4\projets en cours nti\kitea2\achat\caddie_ajout.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at e:\g4\projets en cours nti\kitea2\achat\caddie_ajout.php:4) in e:\g4\projets en cours nti\kitea2\achat\caddie_ajout.php on line 14

Sachant que le code d'ajout de la classe est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function ajout(&$produitid, $quantite) {
    /* Ajoute un article au caddie et met à jour le montant total */
        if (isset($produitid)) {
 
            if (! isset($this->articles[$produitid])) {
 
                $this->articles[$produitid] = 'O';
 
            }
 
            $this->articles[$produitid] += $quantite;
 
        }
    }

byokyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2006, 21h28   #3
Membre chevronné
 
Avatar de Elwyn
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 836
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2006
Messages : 836
Points : 712
Points : 712
Pas compris dsl !

Si un client choisit par expemple chambre : tous les sous-produits chambre vont aller dans son panier ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
Elwyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2006, 21h41   #4
Membre du Club
 
Avatar de liza83
 
Étudiant
Inscription : mai 2004
Messages : 52
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2004
Messages : 52
Points : 69
Points : 69
l'erreur que tu as rencontré concerne ta redirection avec le header.
Cette erreur intervient lorsque la page a déjà un contenu lors de l'appel a header.
Il faut donc vérifier si tu n'a rien écrit avant ta balise <?php (un saut de ligne ou un espace...) ou même un echo.
liza83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 00h49   #5
Membre émérite
 
Inscription : août 2003
Messages : 878
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 878
Points : 935
Points : 935
Citation:
Envoyé par liza83
l'erreur que tu as rencontré concerne ta redirection avec le header.
La deuxième erreur, oui. Mais c'est la première la plus importante.

Citation:
Envoyé par liza83
Cette erreur intervient lorsque la page a déjà un contenu lors de l'appel a header.
Exact.

Citation:
Envoyé par liza83
Il faut donc vérifier si tu n'a rien écrit avant ta balise <?php (un saut de ligne ou un espace...) ou même un echo.
Non, pas ici.
La page a déjà un contenu car il y a eu un premier message d'erreur (ajouté au contenu de la page) à la ligne 4, donc le header en ligne 14 ne peut pas fonctionner (c'est ce que dit : "output started at e:\g4\projets en cours nti\kitea2\achat\caddie_ajout.php:4").
__________________
Un problème bien exposé
est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.
David.Schris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 12h40   #6
Invité de passage
 
Inscription : juillet 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 7
Points : 1
Points : 1
Merci pour vos remarque,

Je tiens à vous informer que le message d'erreur ne s'affiche pas si je laisais le code comme tel :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include("../configuration.inc.php");
 
$_SESSION['caddie']->ajout($_REQUEST['id'], $_REQUEST['qte']);
$_SESSION['caddie']->nettoie();
$_SESSION['caddie']->recalc_total();
 
$HTTP_REFERER = $_SERVER['HTTP_REFERER'];
 
if (!empty($HTTP_REFERER)) {
    header("Location: $HTTP_REFERER");
} else {
    header("Location: $wwwroot/index.php");
}
?>
Ce bout de code ci-dessus sert à ajouter un produit au panier. Mais mon but c ajouter 1 ou plusieurs sous-produits à la fois, c pour cela que j'ai voulu utiliser foreach().



Donc, j'ai mis une case à cocher pour chaque " sous-produit " comme suit :

Code :
<input class="cocher" name="id[]" type="checkbox" value="<?php echo $ref['id']; ?>" checked="checked" />
Alors, que faire pour que le code AJOUTE les sous-produits en même temps, c à dire en cliquant sur " Ajouter au panier " ??

N.B : J'ai mis la classe "caddie.php " en pièce jointe.
Fichiers attachés
Type de fichier : php caddie.php (3,1 Ko, 3 affichages)
byokyo 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 12h21.


 
 
 
 
Partenaires

Hébergement Web