Enlever un element d'un array [Résolu]

Signaler
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
shadow1779
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Bonjour a tous,

Je suis actuellement en train de développer un petit module générant des factures (avec la class FPDF) prenant en compte le stock de matériel de la structure en question (géré par un module php déja existant), et ceci devant être réalisé d'une manière "cross-platform" (PC/Mac/Windows mobile/smartphone/mobile classique).

Pour cela pas d'utilisation d'ajax ni même de javascript pour ajouter des tableaux d'input a la volée... du coup méthode un peu bourrin, mais qui me pose problème:

une facture ce génère avec "n" produits chacun de "x" quantité. Pour cela j'ai fais un formulaire simple avec un tableau ($_SESSION['produits'] = array();) et je fais un push a chaque entrée (l'utilisateur check une checkbox et renvoi le formulaire pour l'envoi a la base et le traitement)

CEPENDANT: Je voudrai permettre la suppression d'un élement (pas la modification parce que la ma tête va exploser) quand l'utilisateur clic sur une des croix (ayant pour lien stock.factures.php?del='l'element'

ma question est de savoir comment puis-je faire pour supprimer l'element en question du tableau sans avoir a faire un gros unset();

Merci d'avance.

PS/ pour plus d'aide voici la structure du truc (en gros)

$_SESSION['produits'] = array();

// contenu de l'array (shématiquement ^^)
[0] => "1n5",
[1] => "6n3",
[2] => "2n8"... etc

(le premier chiffre est a chaque fois l'id du produit (qu'on retrouve dans le del=element), le "n" me sert pour mon explode (quand la facture et tout les calculs savants se génèrent ^^) et le deuxieme chiffre exprime la quantité (désolé pour avoir fais un truc aussi moche mais j'voyais pas trop comment le faire pour le coup)

Merci d'avance

5 réponses

Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
12
Bonjour,

Tu peux faire ton tableau autrement, en utilisant la clé du produit comme indice, et la qté comme valeur :

$_SESSION['produits'] = array();

// contenu de l'array
$_SESSION['produits'][1] = 5;
$_SESSION['produits'][6] = 3;
$_SESSION['produits'][2] = 8;

Cela évitera un explode à l'arrivée, et pour supprimer :
unset($_SESSION['produits'][$_GET['element']);
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
salut

tu peux utiliser la fonction unset pour faire ca.
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

bein j'ai essayé unsert($_SESSION['produits'][$_GET['element']]); mais il a rien fais de spécial :s, la fonction s'utilise bien comme ca pourtant
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

unset, par unsert pardon ;) enfin on s'est compris
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

Effectivement, j'ai adopté ta solution, parce que de la manière dont j'avais pris le problème c'était la galère pour s'en sortir...