Aller au contenu

liste multi choix pour un seul champ sql


ifii

Sujets conseillés

Bonjour à tous!

Voici mon problème : j'ai créer un formulaire avec une liste de choix multiples. Ces données sont ensuite envoyées sur une base de donnée sql. Le souci que que dans le champ où je voudrais que les multiples choix soient enregistrés, il n'apparaît finalement que la dernière sélection.

Mon code de la liste déroulante :

<td>Type de contrat :</td>
<td><label>
<select name="contrat" size="5" multiple id="contrat">
<option value="Tous contrats" selected>Tous contrats</option>
<option value="CDI">CDI</option>
<option value="CDD">CDD</option>
<option value="Intérim">Intérim</option>
<option value="Stage">Stage</option>
</select>
</label></td>

Mon code php d'envoi des données sur la base sql :

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "titre"))
{
$insertSQL = sprintf("INSERT INTO profil ( nom, prenom, contrat) VALUES (%s, %s, %s)",

GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['contrat'], "text"),

Comment puis-je faire pour que toutes les sélections de l'utilisateur soient bien enregistrer dans le champ "contrat" de ma base sql?

Merci d'avance!

Lien vers le commentaire
Partager sur d’autres sites

Hello !

De souvenirs il faut que tu précises dans le code html que <select> est un tableau

<select name="contrat[]" size="5" multiple id="contrat">

Après en principe dans ta variable PHP tu recevras aussi un tableau sur lequel tu peux appliquer un count() pour compter le nombre d'insertions cochées etc ;-)

Et puis après je pense que tu trouveras comment fait, mais bon si je me trompes pas tu peux faire qqch du genre :

$maVar = implode(",", $contrat);

A tester :-) Par contre le coup du contrat[] j'en suis certain !

Modifié par GeckoGeek
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...