Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 10h58   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 21
Points : 12
Points : 12
Par défaut Tableau de Select multiple

Bonjour, j'ai un petit problème et j'aimerais savoir s'il ya une solution autre que celle à laquelle je pense

J'ai un formulaire avec plusieurs select multiple de type

Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select multiple name="babar[]">
<option value="1" selected>test</option>
<option value="2" selected>test</option>
</select>
 
<select multiple name="babar[]">
<option value="1" selected>test</option>
<option value="2" selected>test</option>
</select>
 
<select multiple name="babar[]">
<option value="1" selected>test</option>
<option value="2" selected>test</option>
</select>


Si je boucle sur $_POST['babar'], je m'aperçois que ce n'est pas un tableau de tableau, mais plutôt qu'il s'embrouille dans les données, et qu'un final ce n'est qu'un simple tableau...

Sachant que je dois leur donné le même nom pour éviter que cela soit trop complexe, et que j'ai déjà beaucoup de traitement en ajax sur la page, j'aimerais éviter d'alourdir trop tout ça.

Du coup quand je récupère le tableau de select en POST, ça foire... je récupère qu'une des valeurs sélectionnées.

J'aimerais savoir si je suis obligé de passé par un JS pour concaténer les valeurs sélectionnées? Ou alors s'il ya une méthode pour accéder à toutes les valeurs selected de chaque select multiple?
SleTT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h28   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Si tu veux un tableau de tableaux, il faut le dire à ton formulaire :
Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select multiple name="babar[a][]">
<option value="1" selected>test</option>
<option value="2" selected>test</option>
</select>
 
<select multiple name="babar[b][]">
<option value="3" selected>test</option>
<option value="4" selected>test</option>
</select>
 
<select multiple name="babar[c][]">
<option value="5" selected>test</option>
<option value="6" selected>test</option>
</select>
va renvoyer :
Code x :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[babar] => Array
(
	[a] => Array
	(
		[0] => 1
		[1] => 2
	)
	[b] => Array
	(
		[0] => 3
		[1] => 4
	)
	[c] => Array
	(
		[0] => 5
		[1] => 6
	)
)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h38   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 21
Points : 12
Points : 12
Le problème, c'est que le nombre de select multiple est dynamique, je peux aussi bien en avoir 5, que 30, du coup c'est pas super pratique.

J'imagine que dans ton exemple, je dois modifier le nom à la volé à chaque création de select?
SleTT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h44   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
le plus simple, c'est d'incrémenter une variable compteur à chaque fois que tu crées un select. Genre :
Code :
1
2
3
4
5
6
$i = 0;
while(une_condition)
{
   echo '<select name="babar['.$i.'][]">.....</select>';
   $i++;
}
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 13h27   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 21
Points : 12
Points : 12
Ok je vois.

Je voulais éviter un traitement JS de plus, mais du coup je vais me tourner vers cette solution quand même et incrémenter en JS le numéro

Merci pour cette réponse
SleTT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h53.


 
 
 
 
Partenaires

Hébergement Web