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 :

Caddie virtuel [Version très simplifié]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Points : 170
    Points
    170
    Par défaut Caddie virtuel [Version très simplifié]
    Bonjour,

    Ici vous pourrez voir un programme php qui gèrera un panier virtuel.
    Dans ce panier il vous est possible d'ajouter des pommes ou des poires.

    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
    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
    <?php
        // Dans ce script nous utilisons les sessions
        session_start();
     
        // Chargement du caddie
        if (isset($_SESSION["caddie"])) {
            $caddie = $_SESSION["caddie"];
        } else {
            $caddie = array();
        }    
     
    		    if (isset($_GET['action'])) {	
    		    if ($_GET['action']=="destroy") {
    		        // on a demander � tout supprimer
    		        session_destroy();
    		        header("Location: ".$_SERVER['PHP_SELF']);
    		    }
    			}
     
        if (isset($_GET["raz"])) {
            // On a demand� � reinitialiser une valeur
            switch ($_GET["raz"]) {
                case "pomme":
                    unset($caddie["pommes"]);
                    break;
                case "poire":
                    unset($caddie["poires"]);
                    break;
                case "total":
                    unset($caddie["total"]);
                    break;
                }
            // "sauvegarde" des modifications    
            $_SESSION["caddie"] = $caddie;    
            header("Location: ".$_SERVER["PHP_SELF"]);
            die();
        }
     
        if (isset($_GET["achat"])) {
            // On a demand� � incr�menter une valeur    
            switch ($_GET["achat"]) {
                case "pomme":
                    $caddie["pommes"]++;
    			    $caddie["total"]++;
                     break;
    			case "poire":
                    $caddie["poires"]++;
    			    $caddie["total"]++;
                     break;
            }
            // "sauvegarde" des modifications    
            $_SESSION["caddie"] = $caddie;
            header("Location: ".$_SERVER["PHP_SELF"]);
            die();
       }    
    ?>
    Nb Pommes:<?php if (isset($caddie["pommes"])) echo $caddie["pommes"];?>
    <a href="<?php echo $_SERVER["PHP_SELF"];?>?achat=pomme">[Acheter une pomme]</a>
    <a href="<?php echo $_SERVER["PHP_SELF"];?>?raz=pomme">RAZ</a><br />
     
    Nb Poires:<?php if (isset($caddie["poires"])) echo $caddie["poires"];?>
    <a href="<?php echo $_SERVER["PHP_SELF"];?>?achat=poire">[Acheter une poires]</a>
    <a href="<?php echo $_SERVER["PHP_SELF"];?>?raz=poire">RAZ</a><br />
     
    Total (pommes+poires) :<?php if (isset($caddie["total"])) echo $caddie["total"];?>
    <a href="<?php echo $_SERVER["PHP_SELF"];?>?raz=total">RAZ</a><br />
     
    <br/>
    <a href="<?php echo $_SERVER["PHP_SELF"];?>?action=destroy">Vider le panier</a><br/>
    LE PROBLEME ?
    Je souhaite modifier une partie de ce programme.
    En faite, à chaque fois qu'on clique sur [Acheter une poire] ou [Acheter une pomme] et bien le total augmente de 1 à chaque click (c'est logique vous me direz!)
    Je voudrais que lorsqu'on clique sur [Acheter une poire] le compteur ne s'incrémente pas de 1, mais plutôt de 5.
    Et quand on clique sur [Acheter une pomme] le compteur s'incrémente de 7.

    Don c'est surement quelque chose à modifier là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            switch ($_GET["achat"]) {
            case "pomme":
                    $caddie["pommes"]++;
    	        $caddie["total"]++;
                     break;
    	case "poire":
                    $caddie["poires"]++;
    		$caddie["total"]++;
                     break;
            }
    J'ai essayé de remplacé $caddie["total"]++; par $caddie["total"] + 5; mais cela ne marche pas...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $caddie["pommes"] = $caddie["pommes"] + 5;
    ou
    $caddie["pommes"] += 5;

    Un petit tour sur la doc :
    http://fr.php.net/manual/fr/language.operators.php

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Points : 170
    Points
    170
    Par défaut
    Étrange, je m'étais inspiré de ta précédente aide au sujet de mon autre problème et j'avais justement essayé cette solution et cela n'avait pas marché.

    Quoi qu'il en soit je viens de réessayer et là ça marche, c'est parfait. Peut-être une fausse manœuvre...

    En tout cas merci beaucoup!
    EDIT: merci pour la documentation je vais immédiatement jeter un oeil!

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Points : 170
    Points
    170
    Par défaut
    Désolé du doublons mais j'ai juste une dernière question :
    Comment est-ce que je peux faire pour que l'on ne puisse rajouter qu'une seule fois des poires ou des pommes ?

    Par exemple :
    Total = 0
    Je clique sur Acheter pomme (donc total += 5)
    Total = 5
    Je clique une nouvelle fois sur Acheter pomme (donc total += 0)
    Total = 5
    Je clique sur Acheter poire (donc total +=7)
    Total = 12

    Merci.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux placer un indicateur dans ta session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       case "pomme":
                    if ($_SESSION['achat_pomme']) {
                         $erreur = "achat déjà réalisé";
                    }
                    else {
                    $caddie["pommes"]++;
    	        $caddie["total"]++;
                    $_SESSION['achat_pomme'] = 1;
                    }
                     break;

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Points : 170
    Points
    170
    Par défaut
    Merci c'est parfait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Installer une version très minimaliste d'Ubuntu
    Par VivienD dans le forum Ubuntu
    Réponses: 4
    Dernier message: 29/08/2011, 11h17
  2. Mon bot IRC (version très basique)
    Par Invité dans le forum Réseau
    Réponses: 2
    Dernier message: 05/05/2011, 23h12
  3. probleme de session caddie virtuel sous chrome
    Par logone dans le forum Langage
    Réponses: 1
    Dernier message: 15/03/2011, 14h49
  4. caddy virtuel Python
    Par manpac dans le forum Général Python
    Réponses: 4
    Dernier message: 20/06/2007, 18h48
  5. envoi de mail très simplifié
    Par moonslaughter dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2007, 17h52

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