coment passer données via Url ?

Répondre
clicone
le 21/05/2006 à 20:59
clicone
Hello iM@n pourrais jeter un oeil sur ce bout de code.... car impossible d'afficher le contenu panier

  1. if(!isset($_GET['action'])) $action=""; else $action=$_GET['action'];
  2. if (!isset($_SESSION['total'])) $_SESSION['total']=0;
  3. if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];
  4. ?>
  5. <?php require_once('../connCat.php'); ?>
  6. <?php
  7. mysql_select_db($database_connCat, $connCat);
  8. //AJOUT PANIER
  9. if ($action=="Ajouter")
  10. {
  11. /*on récupère la variable issue de $_GET et on l'initialise*/
  12. if (isset($_GET['reference'])) $reference = $_GET['reference']; else $reference = "";
  13. $nb=1; //par défaut la quantité est = 1
  14. /*on récupère la variable issue de $_GET et on l'initialise*/
  15. if (isset($_GET['prix'])) $prix = $_GET['prix']; else $prix = "";
  16. $liste[]=array($reference,$nb,$prix,$prix);
  17. $_SESSION['liste']=$liste;
  18. }
  19. //MODIF
  20. if ($action=="Actualiser")
  21. {
  22. for ($i=0;$i<count($liste);$i++)
  23. {
  24. $nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
  25. $liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
  26. $liste[$i][3]=$liste[$i][1]*$liste[$i][2];
  27. }
  28. $_SESSION['liste']=$liste;
  29. }
  30. //SUPRIMER PANIER
  31. if ($action=="Supprimer")
  32. {
  33. /*on récupère la variable issue de $_GET et on l'initialise*/
  34. if (isset($_GET['article'])) $article = $_GET['article']; else $article = "";
  35. for ($i=0;$i<count($liste);$i++)
  36. {
  37. if($article==$liste[$i][0])
  38. array_splice($liste,$i,1);
  39. //suppression de l'article
  40. }
  41. $_SESSION['liste']=$liste;//mAj de la liste
  42. }
  43. //COMMANDER
  44. if ($action=="Commander")
  45. {
  46. /*on récupère la variable issue de $_GET et on l'initialise*/
  47. if (isset($_GET['action'])) $action = $_GET['action']; else $action = "";
  48. $_SESSION['action']="ENREGISTRER";//mémorisation action
  49. header("Location: commande.php");
  50. }
  51. ?>
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
i M@N
le 21/05/2006 à 21:13
i M@N
Reuh ...

Je veux bien t'aider mais faut en dire un peu plus ... Pourquoi ça affiche pas ? c'est quand $action == "Actualiser" que s'est censé afficher quelque chose ??

Sinon j'ai toujours pas compris ça :
  1. <?php
  2. $nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
  3. $liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
  4. ?>

Pourquoi $liste[$i][1]=$_GET["$nbi"] si $nbi='nb'.$i; ... c'est pas logique : soit $nbi vient de $_GET soit tu le définis en cours de script mais pas les deux. smiley
En plus, où est-ce que tu initialises ta variable $nbi issue de $_GET ???

Donc donne un peu plus d'explications stp, on a pas tout ton code sous les yeux et on connait pas le reste de ton panier. smiley

@+...
One Love, One Heart, One Unity.
clicone
le 21/05/2006 à 22:42
clicone
J'ai essayé de redécouper tout en morceau et je vois que au niveau du ajouter ca coince déjà :

  1. <?php
  2. if(!isset($_GET['modifPanier'])) $modifPanier="";
  3. else $modifPanier=$_GET['modifPanier'];

  4. if(!isset($_GET['enregistreCommande'])) $enregistreCommande="";
  5. else $enregistreCommande=$_GET['enregistreCommande'];


  6. //AJOUT PANIER
  7. if ($ajoutPanier=="AJOUTER")
  8. {
  9. $reference=$_GET['reference'];
  10. $nb=1;
  11. $prix=$_GET['prix'];
  12. $liste[]=array($reference,$nb,$prix,$prix);
  13. $_SESSION['liste']=$liste;
  14. }


Si je reprend mon ancien code ca s'affiche:

  1. <?php
  2. session_start();
  3. if (!isset($_SESSION['total'])) $_SESSION['total']=0;
  4. if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";
  5. else $ajoutPanier=$_GET['ajoutPanier'];
  6. if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];
  7. ?>
  8. <?php require_once('../connCat.php'); ?>
  9. <?php
  10. mysql_select_db($database_connCat, $connCat);

  11. //AJOUT PANIER
  12. if ($ajoutPanier=="AJOUTER")
  13. {
  14. $reference=$_GET['reference'];
  15. $nb=1;
  16. $prix=$_GET['prix'];
  17. $liste[]=array($reference,$nb,$prix,$prix);
  18. $_SESSION['liste']=$liste;
  19. }

l'article s'affiche ... ?
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
clicone
le 21/05/2006 à 22:49
clicone
Code 1 : j'ai fait une erreur de copie, c'est ceci qui est repris

  1. <?php
  2. session_start();
  3. //init des variables
  4. if(!isset($_GET['action'])) $action=""; else $action=$_GET['action'];
  5. if (!isset($_SESSION['total'])) $_SESSION['total']=0;
  6. if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];

  7. //AJOUT PANIER
  8. ...
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
i M@N
le 21/05/2006 à 22:53
i M@N
Reuh ...

Bon on continue demain, mais d'ici là réponds aux questions que je t'ai posé stp :
Je veux bien t'aider mais faut en dire un peu plus ... Pourquoi ça affiche pas ? c'est quand $action == "Actualiser" que s'est censé afficher quelque chose ??

Sinon j'ai toujours pas compris ça :
  1. <?php
  2. $nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
  3. $liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
  4. ?>


Pourquoi $liste[$i][1]=$_GET["$nbi"] si $nbi='nb'.$i; ... c'est pas logique : soit $nbi vient de $_GET soit tu le définis en cours de script mais pas les deux. smiley
En plus, où est-ce que tu initialises ta variable $nbi issue de $_GET ???

Donc donne un peu plus d'explications stp, on a pas tout ton code sous les yeux et on connait pas le reste de ton panier.


Bonne nuit, @ demain ...
One Love, One Heart, One Unity.
clicone
le 21/05/2006 à 23:41
clicone
Si j'ai correctement écris et bien compris, a chaque boucle $nbi prend la valeur de la concatenation du prefixe nb et de l’indice $i

la concatenation se realise avec $nbi=nb.$i permet la récup des articles selectionés dans le menu deroulant et l’affecte a la variable de la liste adhoc

les memorisations possible sont
[y]=0 : référence
[y]=1 : une quantité
[y]=2 : prix unit
[y]=3 : prix total
[x]= identifiant de chaque article

$_GET["$nbi"];//recup du nbr d'article dans la liste
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
i M@N
le 22/05/2006 à 18:47
i M@N
Hello !

Bon je veux bien t'aider mais stp fais un effort et LiS ce que je dis, y compris dans les commentaires de ton code.

Ton code :
  1. <?php
  2. //MODIF
  3. if ($action=="Actualiser")
  4. {
  5. for ($i=0;$i<count($liste);$i++)
  6. {
  7. $nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
  8. $liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
  9. $liste[$i][3]=$liste[$i][1]*$liste[$i][2];
  10. }
  11. $_SESSION['liste']=$liste;
  12. }
  13. ?>

Ce que tu comprends :
Si j'ai correctement écris et bien compris, a chaque boucle $nbi prend la valeur de la concatenation du prefixe nb et de l’indice $i

la concatenation se realise avec $nbi=nb.$i permet la récup des articles selectionés dans le menu deroulant et l’affecte a la variable de la liste adhoc

...

$_GET["$nbi"];/*recup du nbr d'article dans la liste*/

FAUX : ça récupère kedal, t'as pas initialisé ta variable $nbi issue de $_GET, elle vaut "". Même pas "0", elle vaut rien, elle est vide.

Donc :
- soit tu l'initialises avant de t'en servir (je crois pas que ça soit ce que tu veuilles faire) :
  1. <?php
  2. /*on récupère la variable issue de $_GET et on l'initialise*/
  3. if (isset($_GET['nbi'])) $nbi = $_GET['nbi']; else $nbi = "";/*recup du nbr d'article dans la liste*/
  4. ?>

- soit tu lui donnes une valeur au cours de ton script (je pense que c'est ce que tu as besoin) :
  1. <?php
  2. $nbi='nb'.$i;
  3. $liste[$i][1]=$nbi;/*recup du nbr d'article dans la liste*/
  4. ?>
Mais tu fais pas les deux, sinon ça serait comme faire $variable = "1"; $variable ="2";. smiley

@+...
One Love, One Heart, One Unity.
clicone
le 25/05/2006 à 17:16
clicone
Bon j'ai replongé dans ma petit affaire de panier et ben vous allez pas le croire Ca Marche Pas ?

Que j'essaye avec la formule de @IMAn

  1. session_start();
  2. if(!isset($_GET['action'])) $action=""; else $action=$_GET['action'];
  3. if (!isset($_SESSION['total'])) $_SESSION['total']=0;
  4. <?php
  5. //-AJOUT PANIER fonctionne pas?
  6. if ($action=="Ajouter")
  7. {
  8. if (isset($_GET['reference'])) $reference = $_GET['reference']; else $reference = "";
  9. $nb=1; //par défaut la quantité est = 1
  10. if (isset($_GET['prix'])) $prix = $_GET['prix']; else $prix = "";
  11. $liste[]=array($reference,$nb,$prix,$prix);
  12. $_SESSION['liste']=$liste;
  13. }
  14. //-MODIF PANIER incrementation impossible
  15. if ($action=="Actualiser")
  16. {
  17. for ($i=0;$i<count($liste);$i++)
  18. {
  19. $nbi='nb'.$i;
  20. $liste[$i][1]=$nbi;//recup du nbr d'article dans la liste

  21. $liste[$i][3]=$liste[$i][1]*$liste[$i][2];
  22. }
  23. $_SESSION['liste']=$liste;
  24. }


ou avec mon ancienne tecnique
  1. session_start();
  2. if (!isset($_SESSION['total'])) $_SESSION['total']=0;
  3. if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";//init de ajoutPanier si non déclaré
  4. else $ajoutPanier=$_GET['ajoutPanier'];
  5. if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré
  6. else $modifPanier=$_GET['modifPanier'];
  7. if (isset($_GET['nbi'])) $nbi = $_GET['nbi'];
  8. else $nbi = "";
  9. ...
  10. <?php
  11. //-AJOUT PANIER ici FONCTIONNE
  12. if ($ajoutPanier=="AJOUTER")
  13. {
  14. $reference=$_GET['reference'];
  15. $nb=1; //par défaut la quantité est = 1
  16. $prix=$_GET['prix'];
  17. $liste[]=array($reference,$nb,$prix,$prix);
  18. $_SESSION['liste']=$liste;
  19. //ajoute un article à la liste
  20. }
  21. //-MODIF PANIER incrementation ne fonctionne Pas?
  22. if ($modifPanier=="ACTUALISER")
  23. {
  24. for ($i=0;$i<count($liste);$i++)
  25. {
  26. $nbi='nb'.$i;
  27. $liste[$i][1]=$_GET['$nbi'];

  28. $liste[$i][3]=$liste[$i][1]*$liste[$i][2];//prixArticle=nbre*prixUnitaire
  29. }
  30. $_SESSION['liste']=$liste;//mAj de la liste
  31. }


Nada, rien, nothing ... imposssible d'incrémenter ce Panier

Si vous avez une autre idée elle est la bienvenue. :)
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Bzh
le 25/05/2006 à 18:57
Bzh
Mais pourquoi ne pas utiliser l'écriture:
  1. <?php

  2. $_SESSION['liste'][] = $liste;

  3. ?>
clicone
le 25/05/2006 à 20:47
clicone
le renvoi est :
Notice: Undefined offset: 1 in...line100
Fatal error: Unsupported operand types in

Ca c'est la ligne 100 :
$total+=$row_rsPanier['prix'] * $liste[$i][1];

Aapparemment 1 pas accepté???
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Répondre
LoadingChargement en cours