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

if(!isset($_GET['action'])) $action=""; else $action=$_GET['action'];
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];
?>
<?php require_once('../connCat.php'); ?>
<?php
mysql_select_db($database_connCat, $connCat);
//AJOUT PANIER
if ($action=="Ajouter")
{
/*on récupère la variable issue de $_GET et on l'initialise*/
if (isset($_GET['reference'])) $reference = $_GET['reference']; else $reference = "";
$nb=1; //par défaut la quantité est = 1
/*on récupère la variable issue de $_GET et on l'initialise*/
if (isset($_GET['prix'])) $prix = $_GET['prix']; else $prix = "";
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
}
//MODIF
if ($action=="Actualiser")
{
for ($i=0;$i<count($liste);$i++)
{
$nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
$liste[$i][3]=$liste[$i][1]*$liste[$i][2];
}
$_SESSION['liste']=$liste;
}
//SUPRIMER PANIER
if ($action=="Supprimer")
{
/*on récupère la variable issue de $_GET et on l'initialise*/
if (isset($_GET['article'])) $article = $_GET['article']; else $article = "";
for ($i=0;$i<count($liste);$i++)
{
if($article==$liste[$i][0])
array_splice($liste,$i,1);
//suppression de l'article
}
$_SESSION['liste']=$liste;//mAj de la liste
}
//COMMANDER
if ($action=="Commander")
{
/*on récupère la variable issue de $_GET et on l'initialise*/
if (isset($_GET['action'])) $action = $_GET['action']; else $action = "";
$_SESSION['action']="ENREGISTRER";//mémorisation action
header("Location: commande.php");
}
?>
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 :
<?php
$nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
?>

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à :

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

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


//AJOUT PANIER
if ($ajoutPanier=="AJOUTER")
{
$reference=$_GET['reference'];
$nb=1;
$prix=$_GET['prix'];
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
}


Si je reprend mon ancien code ca s'affiche:

<?php
session_start();
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";
else $ajoutPanier=$_GET['ajoutPanier'];
if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];
?>
<?php require_once('../connCat.php'); ?>
<?php
mysql_select_db($database_connCat, $connCat);

//AJOUT PANIER
if ($ajoutPanier=="AJOUTER")
{
$reference=$_GET['reference'];
$nb=1;
$prix=$_GET['prix'];
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
}

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

<?php
session_start();
//init des variables
if(!isset($_GET['action'])) $action=""; else $action=$_GET['action'];
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];

//AJOUT PANIER
...
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 :
<?php
$nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
?>


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 :
<?php
//MODIF
if ($action=="Actualiser")
{
for ($i=0;$i<count($liste);$i++)
{
$nbi='nb'.$i; /*là je pige pas à quoi sert / d'où sort le $_GET["$nbi"];*/
$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
$liste[$i][3]=$liste[$i][1]*$liste[$i][2];
}
$_SESSION['liste']=$liste;
}
?>

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) :
<?php
/*on récupère la variable issue de $_GET et on l'initialise*/
if (isset($_GET['nbi'])) $nbi = $_GET['nbi']; else $nbi = "";/*recup du nbr d'article dans la liste*/
?>

- soit tu lui donnes une valeur au cours de ton script (je pense que c'est ce que tu as besoin) :
<?php
$nbi='nb'.$i;
$liste[$i][1]=$nbi;/*recup du nbr d'article dans la liste*/
?>
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

session_start();
if(!isset($_GET['action'])) $action=""; else $action=$_GET['action'];
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
<?php
//-AJOUT PANIER fonctionne pas?
if ($action=="Ajouter")
{
if (isset($_GET['reference'])) $reference = $_GET['reference']; else $reference = "";
$nb=1; //par défaut la quantité est = 1
if (isset($_GET['prix'])) $prix = $_GET['prix']; else $prix = "";
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
}
//-MODIF PANIER incrementation impossible
if ($action=="Actualiser")
{
for ($i=0;$i<count($liste);$i++)
{
$nbi='nb'.$i;
$liste[$i][1]=$nbi;//recup du nbr d'article dans la liste

$liste[$i][3]=$liste[$i][1]*$liste[$i][2];
}
$_SESSION['liste']=$liste;
}


ou avec mon ancienne tecnique
session_start();
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";//init de ajoutPanier si non déclaré
else $ajoutPanier=$_GET['ajoutPanier'];
if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré
else $modifPanier=$_GET['modifPanier'];
if (isset($_GET['nbi'])) $nbi = $_GET['nbi'];
else $nbi = "";
...
<?php
//-AJOUT PANIER ici FONCTIONNE
if ($ajoutPanier=="AJOUTER")
{
$reference=$_GET['reference'];
$nb=1; //par défaut la quantité est = 1
$prix=$_GET['prix'];
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
//ajoute un article à la liste
}
//-MODIF PANIER incrementation ne fonctionne Pas?
if ($modifPanier=="ACTUALISER")
{
for ($i=0;$i<count($liste);$i++)
{
$nbi='nb'.$i;
$liste[$i][1]=$_GET['$nbi'];

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


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:
<?php

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

?>
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