IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Demande de l'aide ou conseil


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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");
    }

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut
    pardon, une erreur à réctifier ds le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
     
            }
        }


  3. #3
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    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 : 858
    Par défaut
    Pas compris dsl !

    Si un client choisit par expemple chambre : tous les sous-produits chambre vont aller dans son panier ?

  4. #4
    Membre éclairé Avatar de liza83
    Profil pro
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 52
    Par défaut
    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.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    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").

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 Fichiers attachés

Discussions similaires

  1. recherche aide et conseils sur les tables
    Par jj77 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2007, 23h24
  2. [langage] newbie demande de l'aide
    Par rbh dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2004, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo