Récupérer toutes les valeurs d'un select multiple dans une variable php

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 607 fois - Téléchargée 25 fois

Contenu du snippet

Après avoir passé plusieurs heures à chercher un script pour ça j'ai rien trouvé ..
et j'ai finalement réussi à dévelopé un truc sympa ..enfin pour ceux qui en auront l'utilité ;o)

le problème :
- Récupérer toutes les valeurs inscrites dans un champ select dans une variables php afin de traiter ces données séparément.
- le problème c'est qu'il fallait déjà au départ sélectionner tous les items du select pour les envoyer via un formulaire
- ensuite vient le traitement de la variable envoyé (qui n'est pas reconnu comme un tableau :o( )
- ensuite faire en sorte que l'id du champ select, reste totalemnt traitable en javascript (l'astuce du "mon_id[]" plante en JavaScript :o( )
-------------------------

ben j'ai fini par trouver ;o)

ce script permet de mettre plusieurs formulaire sur la même page et de pouvoir les traiter séparément et surtotu de récupérer facilement le contenu du champ select

j'ai intégré dans le script la lecture de la variable pour que le fonctionnement soit clair

petit détails (tant qu'à faire :p le script est fonctionnel IE6 et Net6 ;) )

Source / Exemple :


<?
/***********************************



// Traitement après post et affichage des valeurs du champ select
if(isset($_POST['Col1']) && !empty($_POST['Col1'])){
  $Col1_Array = $_POST['Col1']; 
  foreach($Col1_Array as $selectValue){
    echo $selectValue."<br>";
  }
}
?>
<html>
<head>
<title>Recuperer valeur select dans variable php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script>
function PostSelect(liste){
  // On compte le nombre d'item de la liste select
  NbCol1 = document.forms[liste].elements.Col1.length;
  
  // On lance une boucle pour selectionner tous les items
  for(a=0; a<NbCol1; a++){
    document.forms[liste].elements.Col1.options[a].selected = true;
  }
  
  // On modifie l'ID  du champ select pour que PHP traite cette 
  // dernière comme un array
  document.forms[liste].elements.Col1.name = "Col1[]";

  // On soumet le formulaire
  document.forms[liste].submit();
}
</script>
</head>

<body>
<form name="Liste1" method="post" action="capture_select.php" onSubmit="PostSelect(this.name)">
  <select name="Col1" size="4" multiple style="width: 150px">
    <option value="Valeur 1">Valeur 1</option>
    <option value="Valeur 2">Valeur 2</option>
    <option value="Valeur 3">Valeur 3</option>
    <option value="Valeur 4">Valeur 4</option>
    <option value="Valeur 5">Valeur 5</option>
  </select><br><br>
  <input name="Envoyer" type="submit" value="Envoyer" />
</form>
</body>
</html>

A voir également

Ajouter un commentaire

Commentaires

benangi
Messages postés
2
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
29 avril 2003
-
Pas vraiment utile ce script car il suffit de déclarer Coll[] comme nom du select et ensuite l'on a en php dans les get ou post (selon la méthode d'envoi du form) un tableau des valeurs.
aannick
Messages postés
138
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
2 mars 2009
-
bonsoir pouvez vous m'aider à résoudre un problème en javascript concernant une carte qd on passe avec la souris on peut voir les adresse et les email des destinataires ce script est trop long pour mettre en commentaire
merci
McPeter
Messages postés
136
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
18 avril 2013
-
Salut
j'avais même pas vu le message de benangi ..
alors ...benangi avant de dire que le script n'est pas utile, essayes de récupérer la totalité des valeurs contenu dans un select avec juste le nom du champ ...
t'auras tout faut !
la seule valeur renvoyé, sera celle qui est sélectionné !
donc avant de dire n'importe quoi ... donnes plutot des améliorations au script genre l'intervention de jeca ici : http://www.phpcs.com/article.aspx?ID=480


et pour aanick :
t'es sur d'être au bon endroit là ???
tu devrais poser ta question dans le forum...
de plus ton problème ne relève pas vraimment d'un select donc je vois pas où tu veux en venir
c'est plutot un problème de réaction sur la souris.

@++
McPeter
Messages postés
136
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
18 avril 2013
-
et quand on fait des commenatires à deux balles et qu'on donne une note de 1 / 10 sans avoir pondu un seul script on s'abstient benangi
@++
aannick
Messages postés
138
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
2 mars 2009
-
c'était pour un prob de programmation en javascript ce n'est pas un problème de souris le script fait qd meme plus de 100 lignes
il ne se laisse pas envoyé ca doit être trop lourd
mais bon je voulais pas vous déranger
merci
la carte est sur le site
http://www.alsacemonde.de/
dans le lien club/vereine

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.