[E-Commerce] pb de passage de paramètre à une fonction
pb de passage de paramètre à une fonction [E-Commerce] - PHP - Programmation
MarshPosté le 09-06-2003 à 12:15:35
Je suis encore bloqué, merci de bien vouloir m'aider un peu. /!\ ATTENTION : ce message est très très long ... si vous êtes courageux aujourd'hui pour le lire ...
Mise en situation : C'est une liste d'article avec plusieurs cases à cocher qui après avoir cliquer sur le bouton "VALIDER" doit (normalement) tout ajouter au caddie.
Voici les bout de mon programme :
* les noms cases à cocher dans mon fichier index.php
* Ensuite le script de add_caddie.php envoyer par POST pour afficher le résultat (normallement) des articles qui ont bien été ajouté
Code :
// [...] Mise en page de la page
// Vérif du formalaire
if (!filled_out($HTTP_POST_VARS))
{
echo "Vous n'avez coché aucune case. Cochez les cases des articles qui vous intéresse puis réessayer.";
do_html_footer();
exit;
}
else
{
if (count($add_me) >0)
{
// boucler tant qu'on a pas fini d'ajouter tous les articles au caddie
$fin_add=sizeof($add_me);
for($i=0 ; $i<$fin_add ; $i++)
{ $idx=$add_me[$i];
if(add_article($idx))
echo "<br>article ".$idx." ajouté<br>";
}
}
else
{ echo "Vous n'avez rien coché. Votre caddie reste donc inchangé.";
}
}
Rem : on fait une boucle pour ajouter tous les caddie dont les cases chekcbox nommé add_me ont été ajouté. Dans $idx on met l'id de l'article. Ca çà a l'air de marcher. Ensuite on appelle donc la fonction add_article();
* fonction add_article, d'où très certainement vient le problème :
Code :
function add_article($idx)
{
// si un objet a été ajouté au caddie pour la première fois
if(!session_is_registered("cart" ))
{ echo "session non enregistrée<br>";
$cart = array();
session_register("cart" );
$items = 0;
session_register("items" );
$total_taille = "0.00";
session_register("total_taille" );
}
if($cart[$idx])
$cart[$idx]++; // si on commande à nouveau le même article on incrémente sa quantité
else
$cart[$idx] = 1; // sinon c'est la 1ère fois qu'on ajoute cet article au caddie
$total_taille = calculate_price($cart,$items);
$items = calculate_items($cart);
// tests perso mais çà affiche tjs pareil quand on passe dans cette fonction plusieurs fois
J'arrête là mon code, si vous arrivez à tout lire.
Rem. finale : En fait au début le code de la fonction add_article n'était pas utilisé ainsi. J'ai un autre scrypt similaire à 'add_article' mais qui n'est pas une fonction. Lorsque que quelqu'un visite le détail d'un article, là aussi il y a le bouton "AJOUTER".
Mais là on passe directement par une méthode POST et donc on envoie /voir_caddie.php?idx=12345 à la page voir_caddie donc. Et elle elle récupère çà directement depuis l'url. Mais là j'ai juste voulu mettre le paramètre dans le prototype d'une fonction exactement la même sauf que çà marche pas
Message édité par ced_voyage le 09-06-2003 à 13:57:51
Marsh Posté le 09-06-2003 à 12:15:35
Je suis encore bloqué, merci de bien vouloir m'aider un peu.
/!\ ATTENTION : ce message est très très long ... si vous êtes courageux aujourd'hui pour le lire ...
Mise en situation : C'est une liste d'article avec plusieurs cases à cocher qui après avoir cliquer sur le bouton "VALIDER" doit (normalement) tout ajouter au caddie.
Voici les bout de mon programme :
* les noms cases à cocher dans mon fichier index.php
* Ensuite le script de add_caddie.php envoyer par POST pour afficher le résultat (normallement) des articles qui ont bien été ajouté
Rem : on fait une boucle pour ajouter tous les caddie dont les cases chekcbox nommé add_me ont été ajouté. Dans $idx on met l'id de l'article. Ca çà a l'air de marcher. Ensuite on appelle donc la fonction add_article();
* fonction add_article, d'où très certainement vient le problème :
Rem : quand on clique sur 4 cases à cocher par exemple on passe donc 4 fois dans cette fonction mais les echo afficher ont toujours les mêmes :
* aperçu d'affichage lorsque le caddie vient d'ouvrir une session pour la première fois, donc était vie au départ : 4 articles cochés
Allez tant qu'on y est je livre tous mon code des fonctions calculate_price et calculate_items si ca viendrais de là :
J'arrête là mon code, si vous arrivez à tout lire.
Rem. finale : En fait au début le code de la fonction add_article n'était pas utilisé ainsi. J'ai un autre scrypt similaire à 'add_article' mais qui n'est pas une fonction. Lorsque que quelqu'un visite le détail d'un article, là aussi il y a le bouton "AJOUTER".
Mais là on passe directement par une méthode POST et donc on envoie /voir_caddie.php?idx=12345 à la page voir_caddie donc. Et elle elle récupère çà directement depuis l'url. Mais là j'ai juste voulu mettre le paramètre dans le prototype d'une fonction exactement la même sauf que çà marche pas
Message édité par ced_voyage le 09-06-2003 à 13:57:51