Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 26/03/2011, 14h01   #1
Invité de passage
 
Inscription : mars 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 17
Points : 1
Points : 1
Par défaut récup de donnée formulaire

Bonjour, j'ai une table playlist ainsi qu'une table champ :


Code :
1
2
3
4
5
6
7
8
9
10
 
playlist
idplaylist 	int(11) 		
titre 	varchar(300) 	
nbchamp 	int(2)
 
champ
idchamp 	int(11) 		
nomchamp 	varchar(300) 
idplaylist 	int(11)
Une playlist est composée de plusieurs champs. Je voudrais alimenté ma table champ par un formulaire.
J'ai donc créé un formulaire qui dans un premier temps me demande de choisir à quel playliste je veux ajouter des champs. Ensuite j'arrive sur un deuxième formulaire où il m'affiche le nombre de champs (input) correspondant à la playlist. Il me suffit de le remplir, mais je bloque sur la récupération des champs. J'ai fais une boucle, mais il manque le nombre de champ de la playlist sélectionnée précédemment. Je sais pas comment je peux le récupérer. Peut être que ma méthode n'est pas la meilleur, ça fait plusieurs semaines que je suis sur ce formulaire, j'aimerais bien un peu d'aide svp..

Fichier1
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
    if(!isset($_POST['btValider']))
    { 
    echo'
    <form onsubmit="return verif()"action="index.php?page=fichier.php" method="post"  enctype="multipart/form-data">
 
    <p>
    <label for="playlist">Playlist :</label>    
    <SELECT name="playlist">';
    $playlistsoiree=new playlistsoiree($db);
    $liste=$playlistsoiree->selectAll();
    foreach ($liste as $unplaylistsoiree)
    {
    echo '<option value='.$unplaylistsoiree['idplaylist'].'>'.$unplaylistsoiree['titre'].'</option>';
    }
    echo'</select> </p>
 
    <input type="submit" id="btValider" name="btValider" />
    <input type="reset" value="Réinitialiser" /> <br />
    </form>';
 
    }
    else
        { 
         // récup de l'id 
        $idplaylistsoiree=$_POST['playlist'];
        echo $idplaylistsoiree;
 
        // recup du nombre de champs
        $playlistsoiree = new playlistsoiree($db);
        $nbchamp=$playlistsoiree->selectOne($idplaylistsoiree);
        echo $nbchamp['nbchamp'];
 
         if(!isset($_POST['btValider2']))
        { 
        echo'<form onsubmit="return verif()"action="index.php?page=fichier2.php" method="post"  enctype="multipart/form-data">';
 
        for ($i=1; $i<=$nbchamp['nbchamp']; $i++)
                  {
                  echo' <p><label for="champ">Champ '.$i.' :</label>
                  <input type ="text" id="champ'.$i.'" name="champ'.$i.'" />
                  </p>  ';
                    }
 
 
        echo' <input type="submit" id="btValider2" name="btValider2" />
    <input type="reset" value="Réinitialiser" /> <br />
    </form>'; 
 
 
    } 
 
 
    }
Fichier 2

Code :
1
2
3
4
5
6
7
8
 
 
//manque nombre de champ, avec une valeur en dure ça marche..
for ($i=1; $i<=2; $i++){
				$champ=$_POST['champ'.$i.''];
 
				echo 'Valeur du champ '.$i.': '.$champ.'<br />';
		}
spyke62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2011, 14h20   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Utilise un name de type tableau
Code :
<input type ="text" id="champ'.$i.'" name="champ[]" />
que tu récupères un tableau
Code :
1
2
3
4
foreach($_POST["champ"] as $index=>$value){
echo $index." : ".$value."<br/>";
}
echo count($_POST["champ"]); // le nombres de champs
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2011, 20h09   #3
Invité de passage
 
Inscription : mars 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 17
Points : 1
Points : 1
oki merci ça marche, mais la première valeur du tableau vaut zéro. Est ce qu'il a un moyen de le faire commencé à partir du chiffre 1 ?
spyke62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2011, 21h09   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Tous les tableaux générés automatiquement commencent par l'index 0.
Mais en quoi cela te pose problème ?
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/03/2011, 04h25   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Citation:
Envoyé par spyke62 Voir le message
mais la première valeur du tableau vaut zéro.
+1 ABCIWEB
Ne confond pas index et valeur.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h08.


 
 
 
 
Partenaires

Hébergement Web