[Tableaux] problème avec array_splice
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:
Code:
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";
}
}
} |
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:
1 2
|
$_SESSION['achats'][] = array ("id" => $temp,"qte" => $tempqte); |
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!
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()
Citation:
array array_splice ( array input , int offset , int length , array replacement )
ou array replacement serait un tableau contenant les nouvelles valeurs.
Voici ce que j'ai donc tenter de faire au code donnée au dessus:
Code:
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";
}
}
} |
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 ! :?
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