Récupération données choix multiple PHP

Petit nouveau ! | 5 Messages

11 févr. 2011, 18:11

Bonjour à tous,

J'ai mis en place un formulaire que l'internaute peut remplir online, et les données sont récupérées via un doc excel sur le ftp.

Tout fonctionne bien, hormis le passage ou je propose un choix multiple - en effet les données récupérées pour cette partie sont, quelque soit le choix effectué: "undefined"

J'ai essayé également avec des boutons radio et des checkbox, mais pas moyen non plus, il doit manquer quelque chose.

Quelqu'un aurait-il une idée?

J'ai d'une part:

Code : Tout sélectionner

<form id="register" name="register" method="post" action="submit.php"> <input name="name" id="name" type="text" value="Nom" class="textBox" maxlength="54" onfocus="if(this.value=='Nom')this.value='';" /> <select name="champ1" type="text" id="champ1" class="textBox" maxlength="54"> <option type="text" value="Non-accompagné">Non-accompagné</option> <option type="text" value="Accompagné">Accompagné</option> </select> <input name="champ2" id="champ2" type="text" value="Téléphone" class="textBox" maxlength="54" onfocus="if(this.value=='Téléphone')this.value='';" /> <input name="email" id="email" type="text" value="Email" class="textBox" maxlength="54" onfocus="if(this.value=='Email')this.value='';" /> <input name="Submit" type="submit" value="" class="submit" /> </form>
et d'autre part dans submit.php:

Code : Tout sélectionner

<?php $file = 'data.csv'; $name = $_REQUEST['name']; $email = $_REQUEST['email']; $champ1 = $_REQUEST['champ1']; $champ2 = $_REQUEST['champ2']; $time = time(); $additional = array (utf8_decode($name),utf8_decode($champ1),utf8_decode($champ2),$email,$time); ?> <?php /*function fputcsv($fp, $arr, $del=",", $enc="\"") { fwrite($fp, (count($arr)) ? $enc . implode("{$enc}{$del}{$enc}", str_replace("\"", "\"\"", $arr)) . $enc . "\n" : "\n"); } */ ?>

ViPHP
xTG
ViPHP | 7331 Messages

11 févr. 2011, 18:49

$_REQUEST est déprécié.
Utilises $_POST et tu auras surement du mieux.

Petit nouveau ! | 5 Messages

11 févr. 2011, 19:04

Ha, je pensais que ça ne marcherait pas pour écrire dans un .csv

Mais je viens d'essayer et aucune amélioration malheureusement.

J'arrive à réupérer toutes les autres infos, dès qu'elles sont renseignées en texte, mais pour le menu déroulant il me poste "undefined" dans le fichier excel :?

D'autres suggestions? :)

ViPHP
xTG
ViPHP | 7331 Messages

11 févr. 2011, 19:28

Enlèves les attributs type de ton select et des options. Ce sont des attributs qui n'existent pas pour ces balises.
Sinon je n'ai pas d'idée, hormi cela je ne vois pas de soucis.

Petit nouveau ! | 5 Messages

11 févr. 2011, 20:53

Non ça ne fonctionne toujours pas :(

J'ai beau chercher je ne comprends pas - c'est comme s'il ne comprenait pas quelle option était sélectionnée dans le formulaire.

Tous les champs sont cleans sauf celui-là...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 févr. 2011, 22:10

salut,

a tu essayé un var_dump($_POST); dans submit.php afin de savoir ce qu'il y a de fournit par le formulaire ?

perso j'ai essayé
<pre>
<?php
var_dump($_POST);
?>
</pre>
<form id="register" name="register" method="post" action="">
   <input name="name" id="name" type="text" value="Nom" class="textBox" maxlength="54" onfocus="if(this.value=='Nom')this.value='';" />
   <select name="champ1" type="text" id="champ1" class="textBox" maxlength="54">
         <option type="text" value="Non-accompagné">Non-accompagné</option>
         <option type="text" value="Accompagné">Accompagné</option>
   </select>
   <input name="champ2" id="champ2" type="text" value="Téléphone" class="textBox" maxlength="54" onfocus="if(this.value=='Téléphone')this.value='';" />
        <input name="email" id="email" type="text" value="Email" class="textBox" maxlength="54" onfocus="if(this.value=='Email')this.value='';" />
        <input name="Submit" type="submit" value="du texte ?" class="submit" />
</form>
pas de soucis, la suppression de l'action me permet d'utiliser la même page pour le formulaire et la validation pour le test !


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

11 févr. 2011, 23:12

Ok je viens d'atteindre mes limites :)

J'ai du mal à déchiffrer ce que tu me dis :')

Tu dis que cela fonctionne pour toi? Ce test permet de confirmer les infos envoyées par le formulaire?

D'où peut provenir l'erreur dans ce cas?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 févr. 2011, 00:46

que te donne un var_dump($_POST); en haut de submit.php ? (quand tu valide le formulaire)

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

12 févr. 2011, 02:21

Il ne se passe rien,
array(0) {
}

Pourtant j'ai bien la confirmation que le formulaire est validé, et je retrouve bien les informations dans le .csv

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 févr. 2011, 14:56

heu le formulaire passe pas en post alors peut être en get, si var_dump($_POST) retour array zéro c'est que l'info ne provient pas d'un formulaire passer en post !
tu peut faire la même chose sur $_GET et $_REQUEST, y a t'il une autre moulinette qui pourrait accèder a ces variables ?

@+
Il en faut peu pour être heureux ......