(reprise du message précédent)
Je comprends pas trop, tu me parles de vider ton panier et ton code permet de retirer un élément
Si tu veux vider le panier totalement tu dois juste reset ton panier comme ça par exemple :
Et si tu veux retirer les objets "null" présent dans ton panier tu peux faire quelque chose comme ça :
Ça veut dire que tu supprimes ton élément après l'avoir affiché
Du coup ton code est bon, juste mal agencé..
Ce qui donne en mélangeant un peu le tout :
Et pour répondre à ça :
Pendant ma scolarité on m'a appris à ne pas mélanger les deux pour que ton code reste lisible, pour toi ou les gens qui doivent te lire, c'est du détail comme l'indentation qui permettent de rentre ton code plus propre...
Après si tu préfères lire :
que :
Je peux plus rien pour toi !
Modifié par Derlys (05 Jun 2014 - 12:06)
Je comprends pas trop, tu me parles de vider ton panier et ton code permet de retirer un élément
Si tu veux vider le panier totalement tu dois juste reset ton panier comme ça par exemple :
$_SESSION['panier']=array();
Et si tu veux retirer les objets "null" présent dans ton panier tu peux faire quelque chose comme ça :
$save=$_SESSION['panier'];
$_SESSION['panier']=array();
foreach ($save as $objet) if ($objet!=null) $_SESSION['panier'][]=$objet;
CroiSciento a écrit :
du coup quand on appuie pour supprimer le panier l'article ne se supprime pas de suite il faut cliquer une deuxieme fois
Ça veut dire que tu supprimes ton élément après l'avoir affiché
Du coup ton code est bon, juste mal agencé..
Ce qui donne en mélangeant un peu le tout :
//manipulation pour savoir si on doit vider le panier
if (isset($_POST['vider'])) $_SESSION['panier']=array();
//manipulation pour savoir si on doit retirer un élément
if(isset($_POST['suppr_panier']) {
$key=htmlentities($_POST['suppr_panier']);
if(is_numeric($key)) unset($_SESSION['panier'][$key]);
}
//manipulation pour corriger ton problème du : null
$save=$_SESSION['panier'];
$_SESSION['panier']=array();
foreach ($save as $objet) if ($objet!=null) $_SESSION['panier'][]=$objet;
//affichage ton ton panier + boutons
if (isset($_SESSION['panier']) && !empty($_SESSION['panier'])) {
echo "<h3>Mon panier</h3>";
foreach ($_SESSION['panier'] as $key=>$val) {
echo $val[0]." - ".$val[1]." - ".$val[2]."<br>";
echo '<form action="#" method="POST">';
echo '<input type="submit" value="Supprimer du panier">';
echo '<input type="hidden" name="suppr_panier" value="'.$key.'"></br>';
echo '</form>';
}
echo "<br><br>";
}
//affichage du bouton : vider le panier
echo "
<form action='#' method='POST'>
<input type='hidden' name='vider' />
<input type='submit' value='Vider le panier' />
</form>";
//et un petit print_r pour vérifier le tout
echo print_r($_SESSION['panier']);
Et pour répondre à ça :
CroiSciento a écrit :
Je ne pense pas que mettre du html en php soit un bonne idée, mais je fais comme je peut. Smiley lol
Pendant ma scolarité on m'a appris à ne pas mélanger les deux pour que ton code reste lisible, pour toi ou les gens qui doivent te lire, c'est du détail comme l'indentation qui permettent de rentre ton code plus propre...
Après si tu préfères lire :
<form action='#' method='POST'>
<input type='hidden' name='<?php echo $le_nom; ?>' />
<input type='submit' value='<?php echo $ma_valeur; ?>' />
</form>
que :
echo "
<form action='#' method='POST'>
<input type='hidden' name='".$le_nom."' />
<input type='submit' value='".$ma_valeur."' />
</form>";
Je peux plus rien pour toi !
Modifié par Derlys (05 Jun 2014 - 12:06)