Panier en PHP - PHP - Programmation
Marsh Posté le 27-11-2008 à 11:24:10
t'appelles avec un "onclick" (javascript) une fonction PHP ? o_0
Es-tu sûr que ton unset soit bien effectué si ça marche ?
(affiche un echo juste à côté pour voir ...)
Marsh Posté le 27-11-2008 à 16:15:52
Euh ça marche pas, point barre.
L'auteur de ce topic n'a rien compris au fonctionnement de php, je l'invite fortement à revoir les notions de client et de serveur dans le contexte du web, et à quel endroit s'exécutent les différents langages qu'il utilise.
Marsh Posté le 27-11-2008 à 17:00:21
ça aurait pu marcher s'il passait par de l'AJAX, mais si on considère avoir la totalité du code sous les yeux, c'est clair que c'est pas prévu pour fonctionner.
Marsh Posté le 27-11-2008 à 17:04:10
NewsletTux a écrit : ça aurait pu marcher s'il passait par de l'AJAX, mais si on considère avoir la totalité du code sous les yeux, c'est clair que c'est pas prévu pour fonctionner. |
euh non, ça aurait pas pu. Il appelle pas un script php, il appelle une fonction.
Marsh Posté le 27-11-2008 à 17:07:20
il appelle un fonction javascript qui elle aurait pu appeler un script php avec de l'AJAX
Marsh Posté le 27-11-2008 à 17:08:20
yellu a écrit : il appelle un fonction javascript qui elle aurait pu appeler un script php avec de l'AJAX |
s'il ne sait pas qu'il appelle une fonction javascript, ça ne compte pas
Marsh Posté le 27-11-2008 à 17:47:17
Bon j'explique à l'auteur :
Javascript s'exécute côté client, PHP côté serveur.
Le seul moyen de faire le lien entre les deux est Ajax.
Marsh Posté le 27-11-2008 à 17:55:24
bonjour le raccourci.
Marsh Posté le 27-11-2008 à 20:56:52
mencls a écrit : Je suis entrain de réaliser un site commercial |
mencls a écrit : (Question qui montre que l'auteur n'a qu'un faible niveau pour réaliser un tel site, avec les conséquences financières désastreuses que cela peut avoir) |
Marsh Posté le 26-11-2008 à 21:33:47
Bonsoir à tous,
Je suis entrain de réaliser un site commercial, dans lequel on peut choisir des articles d'une base de données mysql.
On peut ajouter les articles choisis dans un panier.
Jusque la tout va bien, j'arrive à afficher tous mes articles dans une page "panier.php".
J'ai créé une fonction vider_panier qui comme son nom l'indique, vide tout le panier :
function vider_panier()
{
if(isset($_SESSION['panier']))
{
unset($_SESSION['panier']);
}
}
Tout le panier se vide comme prévu, mais dès que je vais sur la page index.php et que je retourne sur la page panier.php, tous les articles de mon paniers sont de retour, alors qu'ils ont été supprimés juste avant.
je vous copie colle tout le code de la page panier.php :
<?php
session_start();
$db_connect = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('site_mencls',$db_connect);
if (!$db)
{
die("<p>La selection de la base $base a échoué -
Fin du programme </p>" ) ;
}
if (isset($_GET['article']))
{
$id = $_GET['article'];
// on crée la requête SQL
$sql = "SELECT id_article, nom_article, prix FROM article WHERE id_article = '".$id."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}
if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
$_SESSION['panier']['id_article'] = array();
$_SESSION['panier']['nom_article'] = array();
$_SESSION['panier']['prix'] = array();
}
if(isset($req))
{
while($data = mysql_fetch_assoc($req))
{
array_push($_SESSION['panier']['id_article'], $data['id_article']);
array_push($_SESSION['panier']['nom_article'], $data['nom_article']);
array_push($_SESSION['panier']['prix'], $data['prix']);
}
$nbArticles=count($_SESSION['panier']['id_article']);
if ($nbArticles <= 0)
{
echo "<tr><td>Votre panier est vide </ td></tr>";
}
else
{
for ($i=0 ;$i < $nbArticles ; $i++)
{
echo '<p>'.$_SESSION['panier']['nom_article'][$i].' '.$_SESSION['panier']['prix'][$i].' '.$_SESSION['panier']['id_article'][$i].'</p>';
echo '<p>'.$nbArticles.'</p>';
}
}
}
function vider_panier()
{
if(isset($_SESSION['panier']))
{
unset($_SESSION['panier']);
}
}
echo '<form><input type="submit" value="Vider le panier" onClick=vider_panier()/></form>';
?>
Quelqu'un aurait-il une idée ?
Merci d'avance!