Bonjour à tous et à toutes,
Voici mon problème: j'ai crée un caddie qui comme tous caddie qui se respecte permet d'ajouter et de supprimer des articles. Voici un exemple de ce que j'ai fait pour ajouter +1 à la quantitée d'un article déjà dans le caddie:
Ce code fonctionne très bien, j'ajoute bien plus un au bon endroit, mais voilà, du fait de mon array_splice(), je détruit l'élément déjà existant à sa position, et le recrée ensuite à la fin de mon array avec plus un avec cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if(isset($_GET['plus'])){ $size = sizeof($_SESSION['achats']); for($i=0; $i < $size; $i++){ $temp = $_SESSION["achats"][$i]['id']; $tempqte = $_SESSION["achats"][$i]['qte']; $id = $_GET['plus']; if(($id == $temp) & ($size > 0) & ($stop == 'false')){ array_splice($_SESSION['achats'], $i, 1); $tempqte = $tempqte +1; $_SESSION['achats'][] = array ("id" => $temp,"qte" => $tempqte); $stop = "true"; } } }
Le problème est que lors de l'affichage si je fais plus un à un article situé en haut de page dans mon <table>, celui ci sera affiché modifier en bas de page comme dernier élément du <table>, puisque j'affiche mon array avec un for de 0 à N!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $_SESSION['achats'][] = array ("id" => $temp,"qte" => $tempqte);
Ce que je voudrais c'est faire plus un à l'article correspondant là ou il se trouve ! J'ai vu qu'il était possible dans array_splice() de faire directement cela en spécifiant la valeur de nouvel élément à remplacer après l'attibut lenght dans array_splice()
ou array replacement serait un tableau contenant les nouvelles valeurs.array array_splice ( array input , int offset , int length , array replacement )
Voici ce que j'ai donc tenter de faire au code donnée au dessus:
Bien évidemment cela ne fonctionne pas, je n'ai pas d'erreur PhP, mais il m'affiche des éléments vide après l'élément du tableau à modifier !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 if(isset($_GET['plus'])){ $size = sizeof($_SESSION['achats']); for($i=0; $i < $size; $i++){ $temp = $_SESSION["achats"][$i]['id']; $tempqte = $_SESSION["achats"][$i]['qte']; $id = $_GET['plus']; if(($id == $temp) & ($size > 0) & ($stop == 'false')){ $tempqte = $tempqte +1; array_splice($_SESSION['achats'], $i, 1, array("id" => $temp,"qte" => $tempqte)); $stop = "true"; } } }
Je suis quelques peu perdu, peut être avez vous une idée sur comment faire cela?
J'espère avoir été assez clair pour décrire mon problème!
D'avance merci à tous et à toutes pour votre aide sur mon problème :wink
Partager