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 33 327 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

Messages postés
1
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
28 mai 2010

Super le truc de renommer le nom du select après les traitements Javascript, ca faisait deux heure que je cherchait une solution...
Merci.
Messages postés
2
Date d'inscription
lundi 14 février 2005
Statut
Membre
Dernière intervention
14 novembre 2007

A priori, on connait les valeurs envoyés donc on récupère les données comme ceci :

$_POST['tableau']['0']
$_POST['tableau']['0']
$_POST['tableau']['0']
$_POST['tableau']['0']
Messages postés
3
Date d'inscription
jeudi 6 avril 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Ja vous remrci vraiment c'est un code trés utile il m'a beaucoup aidé, merci beaucoup beaucoup beaucoup....
Messages postés
6
Date d'inscription
mercredi 15 janvier 2003
Statut
Membre
Dernière intervention
27 novembre 2005

oui il suffit d'écrire ton code java comme suis :

var mavariable='<?php echo $nomduselect; ?>';
Messages postés
22
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
28 mai 2007

je voudrais savoir si c possible de recuperer la valeur du select dans une variable java????
Afficher les 14 commentaires

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.