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

Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Dernière intervention
29 septembre 2013
- 15 sept. 2008 à 17:35 - Dernière réponse :
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Dernière intervention
29 septembre 2013
- 16 sept. 2008 à 14:23
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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Dernière intervention
14 juillet 2011
16 sept. 2008 à 09:55
3
Merci
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']);

Merci cs_jeca 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_jeca
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
15 sept. 2008 à 20:27
0
Merci
salut

tu peux utiliser la fonction unset pour faire ca.
Commenter la réponse de coucou747
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Dernière intervention
29 septembre 2013
15 sept. 2008 à 21:49
0
Merci
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
Commenter la réponse de shadow1779
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Dernière intervention
29 septembre 2013
15 sept. 2008 à 21:50
0
Merci
unset, par unsert pardon ;) enfin on s'est compris
Commenter la réponse de shadow1779
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Dernière intervention
29 septembre 2013
16 sept. 2008 à 14:23
0
Merci
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...
Commenter la réponse de shadow1779

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.