Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2011, 16h42   #1
Invité de passage
 
Raphael Maurel
Inscription : mars 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Raphael Maurel

Informations forums :
Inscription : mars 2010
Messages : 6
Points : 1
Points : 1
Par défaut Transmission info d'un formulaire à taille dynamique

Bonjour,

Mon problème est certainement assez simple à régler pour un codeur chevronné, ce que je ne suis pas. Je me casse les dents sur un petit truc que je n'arrive pas à régler.

Dans le cadre d'un projet, je dois générer un formulaire avec un nombre variable de listes déroulantes. Le nombre doit être variable en fonction du nombre de lignes remplies dans un fichier, je commence donc par lire le fichier et générer une boucle While qui me crée le nombre de listes désiré, voici le code, en html et php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
  <form name="formComparaison"
      method="post"
      action="test2.php?identifiant=<?php echo $identifiant;?>" >
 
&nbsp;<u><strong>Veuillez choisir vos réponses : </strong></u>
<br/>
<br/>
 
<?php
 
// initialisation du numero de marqueur
$mkn=0;
// ouverture du  fichier .rcfh de correction
$traceSelect=fopen("$identifiant".'h','r+');
// lecture du nombre de ligne du fichier .rcfh, suivie de la génération du nombre de champs correspondant
while (!feof($traceSelect))
    {
          $lineContent = fgets($traceSelect);
          if($lineContent != '')
              {
                  $mkn=$mkn+1;
                  echo '&nbsp;'.'Marqueur '.$mkn.' : <select name="'.$mkn.'" size="0"/>                                         
                                                <option value="0" > --- Sélectionner --- </option>
                                                <option value="1" > Rythme sinusoïdal </option>
                                                <option value="2" > Début bradychardie </option>
                                                <option value="3" > Fin bradychardie </option>
                                                <option value="4" > Deb tachycardie </option>
                                                <option value="5" > Fin tachycardie </option>
                                                <option value="6" > Début VLT haute </option>
                                                <option value="7" > Fin VLT haute </option>
                                                <option value="8" > Début VLT faible </option>
                                                <option value="9" > Fin VLT faible </option>
                                                <option value="10" > Début VLT absente </option>
                                                <option value="11" > Fin VLT absente </option>
                                                <option value="12" > Précosse </option>
                                                <option value="13" > Tardif </option>
                                                <option value="14" > Variable typique modéré </option>
                                                <option value="15" > Variable typique sévère </option>
                                                <option value="16" > Variable Atypique </option>
                                                <option value="17" > Prolongé <= 3min </option>
                                                <option value="18" > Prolongé > 3min </option>
                                                <option value="19" > Accélération </option>
                                                <option value="20" > Début expulsion </option>
                                                <option value="21" > Amnio infusion </option>
                                                <option value="22" > Dilatation </option>
                                                <option value="23" > pHiu </option>
                                                <option value="24" > Divers </option>
                                            </select>'.'<br/><br/>';
 
              }
    }
    fclose($traceSelect);
 
?>
Jusque-là, ça va. C'est ensuite que ça se corse. Sur le fichier test2.php nommé dans le champ "action" je veux transmettre les réponses choisies dans les listes déroulantes via la méthode POST pour les entrer dans une table MySQL, il faut donc générer une boucle pour ce faire, mais je n'arrive pas à faire le code correctement.

J'essaie dans un premier temps de récupérer le nombre de listes de la variable $mkn pour pouvoir définir la borne supérieure de ma boucle.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
 
$connexion=mysql_connect("localhost","root","") or die ("Probl&egrave;me de connection");
mysql_select_db("outilrecorcf",$connexion) or die ("Probl&egrave;me de sélection");
 
$mkn=$_POST[$mkn];
 
for($n=1;$n<=$mkn;$n++)
    {
          $mark$n=$_POST[$n];
          $entreeReponse = mysql_query("INSERT INTO reponses(reponse) values ('$mark$n')");
    }
 
?>
Voilà ! Il y a un truc que je ne fais pas bien, je pense notamment que je passe mal la variable $mkn d'un fichier à l'autre et que je gère mal les noms de variables dans mes $_POST. Si quelqu'un peut me filer un petit coup de pouce, ça serait super sympa. Merci d'avance !
Raphael092 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 17h09   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

Utilise un tableau (array) pour le name de ton select
Code :
<select name="monSelect[]" size="0"/>
pour récupérer
Code :
1
2
3
4
5
6
if (isset($_POST["monSelect"])){
   foreach($_POST["monSelect"] as $index=>$value){
        echo $index.": ".$value."<br/>";
   }
 
}
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 20h15   #3
Invité de passage
 
Raphael Maurel
Inscription : mars 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Raphael Maurel

Informations forums :
Inscription : mars 2010
Messages : 6
Points : 1
Points : 1
Ca marche !

Sincèrement merci !
Raphael092 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h27.


 
 
 
 
Partenaires

Hébergement Web