problème récupération données formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème récupération données formulaire

par robuste_ » 07 avr. 2007, 22:13

salut Expreg désolé je crois qu'on s'est pas compri...
j'ai bien lu ta réponse et j'ai appliqué ton code. je comprend pas trop car il y a plusieur constante et qu'une variable. Dans ce cas que faut -il mettre dans else{...}. Du côté de ma BDD rien ne s'affiche sur la colonne 'matière'.

dans else dois je mettre une instruction à ma base de données pour qu'elle sache qu'il y a plusieurs plusieur constante et les stocker en conséquence??

Merci @ plus
Phpment votre

Thus

par Expreg » 07 avr. 2007, 15:49

J'ai déjà répondu, relis mes réponses avant

Re: problème récupération données formulaire

par robuste_ » 07 avr. 2007, 12:02

Hello expreg
comme tu peux le voir je ne cherche pas à afficher le champ mais plutot à mettre une condition dessus.

Code : Tout sélectionner

if(isset($_POST['matiere'])) $matiere=$_POST['matiere']; else $matiere="";
dois je stocker les choix multiples sur plusieurs variables ou dois dire à la BDD d'accepter tous les champ et de la configurer en conséquence.

:-)
;-)
Merci c'est ok pour la condition effectivement
if(is_array($_POST['matiere']) && count($_POST['matiere'])>=1)
ça à l'air d'aller...
Mais ensuite est ce qu'il existe une variable qui puisse stocker plusieurs constants. jecrois que mon pb est côté BDD. car ça affiche la dernière valeur choisie sur la liste.
Exemple je vais choisir MAthématique et anglais avec alt GR et juste anglais va apparaite sur ma BDD.

est ce que dans ce cas de choix multiple on peut stocker les deux choix dans une variable genre les une à la suite des autre???
OU
Est ce que je dois déclarer plusieurs variable (X variable si j'ai X valeur) et stocker Y valeur dans Y variable et les envoyé?? Exemple : dans ma liste il y a 5 choix, je déclare 5 variable, si je prends 3 choix je les stock dans 3 variable et je les envoie??

je propose mais je sais pas si ça existe???
MERCI
THUS si quelqu'un a eu ce genre de pb...;-)

par Expreg » 07 avr. 2007, 08:34

Code : Tout sélectionner

if isset($_POST['matiere']
est toujours vrai dès que le formulaire est soumis

Pour savoir si une valeur à été selecytionnée dans $_POST matière il faut procéder de la sorte :
<?php
if(!empty($_POST))
{
// si le formulaire a été soumis...

if(is_array($_POST['matiere'])  && count($_POST['matiere'])>=1)
{
// le tableau n'est pas vide, au moins une valeur sélectionnée
}
else
{
// on fait autre chose, on déclare autre chose.
}
?>

par robuste_ » 07 avr. 2007, 00:37

j'ai essayé comme ça

Code : Tout sélectionner

<td align="center">Matière?</td> <td align="center"> <select name="matiere[]" multiple> <option value="Anglais">Anglais</option> <option value="Français">Français</option> <option value="Mathématique">Mathématique</option> <option value="Physique">Physique/Chimie</option> <option value="Biologie">Biologie</option> </select> </td>
et sur ma BDD cela affiche array sur la colonne matiere
sans les crochets ça affiche la derniere matière selectionner sur les choix.
Je comprends pas si quelqu'un à rencontrer ce genre de pb, je veux bien en profiter...

Thus

Re: problème récupération données formulaire

par robuste_ » 07 avr. 2007, 00:21

Hello expreg
comme tu peux le voir je ne cherche pas à afficher le champ mais plutot à mettre une condition dessus.

Code : Tout sélectionner

if(isset($_POST['matiere'])) $matiere=$_POST['matiere']; else $matiere="";
dois je stocker les choix multiples sur plusieurs variables ou dois dire à la BDD d'accepter tous les champ et de la configurer en conséquence.

:-)
;-)

par Expreg » 06 avr. 2007, 23:45

Comme ça :

Code : Tout sélectionner

<select name="matiere[]" multiple>
Pour afficher le contenu :
echo print_r($_POST['matiere'],true);

par robuste_ » 06 avr. 2007, 20:27

Cette fois ci ça marche mais sur la base de données un seul choix figure
alors que je prend plusieur choix avec "Alt Gr"
dois je configurer la base?

Thus

par Invité » 06 avr. 2007, 19:39

c'est fait ça marche toujours pas.
:-(

Re: problème récupération données formulaire

par Expreg » 06 avr. 2007, 19:14

J'ai choisi la balise suivante :

<select multiple="matiere">
Je me suis juste arrêté là pour le moment :

Code : Tout sélectionner

<select name="matiere" multiple>

Corriges stp :wink:

problème récupération données formulaire

par robuste_ » 06 avr. 2007, 19:11

Bonjour à Tous,

j'ai un formulaire dans lequel je demande à des gens les matières qu'il peuvent enseigner, il peut en avoir plusieurs. J'ai choisi la balise suivante :

<select multiple="matiere">
<option value="Anglais">Anglais</option>
<option value="Français">Français</option>
<option value="Mathématique">Mathématique</option>
<option value="Physique">Physique/Chimie</option>
<option value="Biologie">Biologie</option>
</select>

Le pb c'est que je veux récupérer ces données en php et les envoyer à ma base de données.

et j'ai mis ça...dans le fichier php

Code : Tout sélectionner

<?php // On commence par récupérer les champs if(isset($_POST['nom'])) $nom=$_POST['nom']; else $nom=""; if(isset($_POST['prenom'])) $prenom=$_POST['prenom']; else $prenom=""; if(isset($_POST['phone'])) $phone=$_POST['phone']; else $phone=""; if(isset($_POST['ville'])) $ville=$_POST['ville']; else $ville=""; if(isset($_POST['matiere'])) $matiere=$_POST['matiere']; else $matiere=""; // On vérifie si les champs sont vides if(empty($nom) OR empty($prenom) OR empty($phone) OR empty($ville) OR empty($matiere)) { echo '<font color="red">Attention, remplissez tous les champs svp!!!!</font>'; } // Aucun champ n'est vide, on peut enregistrer dans la table else { // connexion à la base $db = mysql_connect('sql.free.fr', 'login', 'password') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('Professeur_tbl',$db) or die('Erreur de selection '.mysql_error()); // on écrit la requête sql $sql = "INSERT INTO Professeur_tbl(nom, prenom,phone,ville,matiere) VALUES('$nom','$prenom','$phone','$ville','$matiere')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on affiche le résultat pour le visiteur echo 'Vos infos on été ajoutée,vous serez contactez d\'ici peu.'; mysql_close(); // on ferme la connexion } ?>
j'ai un petit souci car si on mets plusieurs choix la variables ne peut pas tout prendre et donc ça ne valide pas.

une petite aide serait la bien venu.

Merci