A voir également:
- Afficher un formulaire selon une requette
- Formulaire de réclamation facebook - Guide
- Afficher mot de passe wifi android - Guide
- Formulaire instagram compte suspendu - Guide
- Formulaire rempli - Guide
- Afficher taille dossier windows - Guide
10 réponses
Bonjour,
Si pour créer ton formulaire, tu fais une boucle $_POST['nbr'] fois, et que tu appelles tes champs pseudo[] et place[] (avec les []), tu récupéreras deux tableaux $_POST['pseudo'] et $_POST['place']
Si pour créer ton formulaire, tu fais une boucle $_POST['nbr'] fois, et que tu appelles tes champs pseudo[] et place[] (avec les []), tu récupéreras deux tableaux $_POST['pseudo'] et $_POST['place']
kzanadeus
Messages postés
70
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
4 décembre 2009
3
28 déc. 2007 à 18:01
28 déc. 2007 à 18:01
Pour moi le plus simple est de créer un champ invisible qui contiendra tout d'abord le nombre de participant du genre :
<input type="hidden" name="nbParticipant" value=$nbr>
et apres de faire une boucle for :
for($i=0;$i<$nbr;$i++)
{
$num = "participant"+$i;
Nom : <input type="text" name=$num value="">
$num = "place"+$i;
Place : <input type="text" name=$num value="">
}
<input type="submit" name="envoyer" value="envoyer">
et dans l'autre page, celle qui recevra les données tu fais un truc du genre récuperer le nombre de participant et tu récupère autant de fois les valeurs qu'il y a de participant.
$nbPart = $_POST['nbParticipant"];
for($i=0;$i<$nbPart;$i++)
{
$nom = $_POST["participant"+$i];
$place = $_POST["place"+$i];
mysql_requete("blablablabla");
}
je ne sais plus éxactement comment on concatène une chaine de caractère et un nombre mais tu trouvera mais en tout cas c'est comme cela que je le ferais moi.
Si il y a des choses que tu n'as pas compris dis le moi j'essaierais d'être plus clair.
Cordialement.
<input type="hidden" name="nbParticipant" value=$nbr>
et apres de faire une boucle for :
for($i=0;$i<$nbr;$i++)
{
$num = "participant"+$i;
Nom : <input type="text" name=$num value="">
$num = "place"+$i;
Place : <input type="text" name=$num value="">
}
<input type="submit" name="envoyer" value="envoyer">
et dans l'autre page, celle qui recevra les données tu fais un truc du genre récuperer le nombre de participant et tu récupère autant de fois les valeurs qu'il y a de participant.
$nbPart = $_POST['nbParticipant"];
for($i=0;$i<$nbPart;$i++)
{
$nom = $_POST["participant"+$i];
$place = $_POST["place"+$i];
mysql_requete("blablablabla");
}
je ne sais plus éxactement comment on concatène une chaine de caractère et un nombre mais tu trouvera mais en tout cas c'est comme cela que je le ferais moi.
Si il y a des choses que tu n'as pas compris dis le moi j'essaierais d'être plus clair.
Cordialement.
Bonsoir kzanadeus
La concaténation en PHP c'est le point "participant".$i
Compte-tenu de l'interprétation des variables entre " ", tu n'as même pas de concaténation à faire : "participant$i" marche très bien.
A part cela, dans l'exemple que tu donnes, tu mélanges HTML et PHP, ça ne va pas marcher.
Passer le nombre d'éléments par une variable cachée n'est pas très utile, on peut très bien le retrouver en testant les champs récupérés.
Je ne vois pas du tout l'intérêt de récupérer des noms de variables différents $_POST['participant1'], $_POST['participant2'] plutôt qu'un tableau rassemblant toutes les variables $_POST['participant'].
Enfin, Je pense qu'il vaut mieux donner des indications aux gens pour qu'ils écrivent leur code eux même, quitte à les corriger ensuite, plutôt que de leur servir du tout cuit
La concaténation en PHP c'est le point "participant".$i
Compte-tenu de l'interprétation des variables entre " ", tu n'as même pas de concaténation à faire : "participant$i" marche très bien.
A part cela, dans l'exemple que tu donnes, tu mélanges HTML et PHP, ça ne va pas marcher.
Passer le nombre d'éléments par une variable cachée n'est pas très utile, on peut très bien le retrouver en testant les champs récupérés.
Je ne vois pas du tout l'intérêt de récupérer des noms de variables différents $_POST['participant1'], $_POST['participant2'] plutôt qu'un tableau rassemblant toutes les variables $_POST['participant'].
Enfin, Je pense qu'il vaut mieux donner des indications aux gens pour qu'ils écrivent leur code eux même, quitte à les corriger ensuite, plutôt que de leur servir du tout cuit
Merci de l'interet que vous porter a mon problemes :)
donc voilas en gros , j ai essayé de faire avec mes petite connaissance
et bien sur ça march po lollll
<?php
// Déclaration des paramètres de connexion
$nbr = $_POST['nbr'];
$i=1;
print("pr verif le nombre de participant est <strong>$nbr</strong> <br> <br> ");
echo '<table bgcolor="#000000" cellspacing="2" align="center">'."\n";
première ligne j'affiche les titres tu tableau Pseudo et Place
echo '<tr>';
echo '<td bgcolor="#990000"><b><span class="Style1">Pseudo</span></b></td>';
echo '<td bgcolor="#990000"><b><span class="Style1">Place</span></b></td>';
echo '</tr>'."\n";
pour la deuxieme ligne, je me suis dit qu'avec la boucle , tant que $i plus petit que $nbr il rajouterra une ligne
while ($i<$nbr) {
echo '<tr>';
Pour finr , j ai essayé de mettre les input dans chaqune des deux colone
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="place" />'</span></td>';
echo '</tr>'."\n";
$i++;
}
echo '</table>'."\n" ;
else echo 'Dans le Culs mumu... le site vas s'auto detruire dans qlq secondes...';
mysql_close();
?>
Ben ben voilas comme je le disais plus haut , ça ne marche pas ...
MAIS COMMENT CA MARCHE ? lol
si vous pouver m'expliquer mes erreur Merci d'avance
donc voilas en gros , j ai essayé de faire avec mes petite connaissance
et bien sur ça march po lollll
<?php
// Déclaration des paramètres de connexion
$nbr = $_POST['nbr'];
$i=1;
print("pr verif le nombre de participant est <strong>$nbr</strong> <br> <br> ");
echo '<table bgcolor="#000000" cellspacing="2" align="center">'."\n";
première ligne j'affiche les titres tu tableau Pseudo et Place
echo '<tr>';
echo '<td bgcolor="#990000"><b><span class="Style1">Pseudo</span></b></td>';
echo '<td bgcolor="#990000"><b><span class="Style1">Place</span></b></td>';
echo '</tr>'."\n";
pour la deuxieme ligne, je me suis dit qu'avec la boucle , tant que $i plus petit que $nbr il rajouterra une ligne
while ($i<$nbr) {
echo '<tr>';
Pour finr , j ai essayé de mettre les input dans chaqune des deux colone
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="place" />'</span></td>';
echo '</tr>'."\n";
$i++;
}
echo '</table>'."\n" ;
else echo 'Dans le Culs mumu... le site vas s'auto detruire dans qlq secondes...';
mysql_close();
?>
Ben ben voilas comme je le disais plus haut , ça ne marche pas ...
MAIS COMMENT CA MARCHE ? lol
si vous pouver m'expliquer mes erreur Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
S'il te plaît, ça ne sert à rien de dire que ça ne marche pas. On s'en doute, si tu es ici. Il faut dire ce qui ne marche pas : ce que tu espérais, et ce qui se passe en fait.
Comme je le disais plus haut , des [] pour créer des tableaux de variables au lieu de variables simples :
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo[]" />'</span></td>';
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="place[]" />'</span></td>';
J'ai supposé que tout ceci était dans un form, on ne voit pas la balise <FORM> ni </FORM> dans ton extrait de script. Il y en a bien, dis ?
pour récupérer les entrées ensuite :
for ($k=0; $k<$_POST['pseudo']; $k++) {
$pseudo=$_POST['pseudo'][$k];
$place =$_POST['place'][$k];
... traitement ...
}
S'il te plaît, ça ne sert à rien de dire que ça ne marche pas. On s'en doute, si tu es ici. Il faut dire ce qui ne marche pas : ce que tu espérais, et ce qui se passe en fait.
Comme je le disais plus haut , des [] pour créer des tableaux de variables au lieu de variables simples :
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo[]" />'</span></td>';
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="place[]" />'</span></td>';
J'ai supposé que tout ceci était dans un form, on ne voit pas la balise <FORM> ni </FORM> dans ton extrait de script. Il y en a bien, dis ?
pour récupérer les entrées ensuite :
for ($k=0; $k<$_POST['pseudo']; $k++) {
$pseudo=$_POST['pseudo'][$k];
$place =$_POST['place'][$k];
... traitement ...
}
re bonjour,
Promis je ne dirai plus ça marche pas lol....
Pour ta supposition, c'est faux !! je n est pas voler ce code dans un forum , mais j ai essayé comme tu me le conseillai ,
de mettre en pratique mes connaissance , de la facon qui me paraissait le plus simple
mes balis form et /form son bien presente en debut et en fin de page , mais elle ne sont pas entre <?php et ?>
ensute , ma requette marche bien quand j efectu cela
if($nbr) {
echo 'Pseudo';
echo '<br>' ;
while ($i<=$nbr) {
echo '<br>';
echo '<input type="text" name="pseudo[]" />';
Donc dejas Merci bcp pr ton aide au niveau des []
Mais par contre , des que j essai de le mettre ds un tableau , ça pose des prob de syntax
echo '<table bgcolor="#000000" cellspacing="2" align="center">'."\n";
echo '<tr>';
echo '<td bgcolor="#990000"><b><span class="Style1">Pseudo</span></b></td>';
echo '</tr>'."\n";
while ($i<=$nbr) {
echo '<tr>';
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
echo '</tr>'."\n";
$i++;
}
echo '</table>'."\n" ;
a priorie le prob viendrai de la ligne echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
je supose que c est prob de " " ou ' ' a cose de l'input
mise a par ce petit souci , le formulaire s ouvre bien comme je le souhaiterai :)
Merci bcp
Promis je ne dirai plus ça marche pas lol....
Pour ta supposition, c'est faux !! je n est pas voler ce code dans un forum , mais j ai essayé comme tu me le conseillai ,
de mettre en pratique mes connaissance , de la facon qui me paraissait le plus simple
mes balis form et /form son bien presente en debut et en fin de page , mais elle ne sont pas entre <?php et ?>
ensute , ma requette marche bien quand j efectu cela
if($nbr) {
echo 'Pseudo';
echo '<br>' ;
while ($i<=$nbr) {
echo '<br>';
echo '<input type="text" name="pseudo[]" />';
Donc dejas Merci bcp pr ton aide au niveau des []
Mais par contre , des que j essai de le mettre ds un tableau , ça pose des prob de syntax
echo '<table bgcolor="#000000" cellspacing="2" align="center">'."\n";
echo '<tr>';
echo '<td bgcolor="#990000"><b><span class="Style1">Pseudo</span></b></td>';
echo '</tr>'."\n";
while ($i<=$nbr) {
echo '<tr>';
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
echo '</tr>'."\n";
$i++;
}
echo '</table>'."\n" ;
a priorie le prob viendrai de la ligne echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
je supose que c est prob de " " ou ' ' a cose de l'input
mise a par ce petit souci , le formulaire s ouvre bien comme je le souhaiterai :)
Merci bcp
Bonsoir
je n est pas voler ce code dans un forum
Je ne t'ai accusé de rien de tel !!! J'ai supposé que le code était dans un FORM pas volé dans un forum !!! :-D
Comme tu as un <FORM> avant ( avec METHOD="POST" action="truc.php" je suppose encore) et un </FORM> après, c'est OK
Par contre, ta ligne
contient de apostrophes un peu au hasard.
Le premier caractère après echo est un '. Donc le paramètre de echo s'arrête au ' suivant (sauf si c'est \'). Donc là il s'arrête avant le input.
ce qu'il y a après, ce n'est plus du PHP, il y a une erreur de syntaxe.
Dans tons cas, il suffit de retirer les ' intermédiaires pour ne garder que le premier et le dernier. Mais aussi de remettre [] derrière pseudo, à moins que tu aies une bonne raison de ne pas le mettre.
je n est pas voler ce code dans un forum
Je ne t'ai accusé de rien de tel !!! J'ai supposé que le code était dans un FORM pas volé dans un forum !!! :-D
Comme tu as un <FORM> avant ( avec METHOD="POST" action="truc.php" je suppose encore) et un </FORM> après, c'est OK
Par contre, ta ligne
echo '<td bgcolor="#3D2828"><span class="Style1">'<input type="text" name="pseudo" />'</span></td>';
contient de apostrophes un peu au hasard.
Le premier caractère après echo est un '. Donc le paramètre de echo s'arrête au ' suivant (sauf si c'est \'). Donc là il s'arrête avant le input.
ce qu'il y a après, ce n'est plus du PHP, il y a une erreur de syntaxe.
Dans tons cas, il suffit de retirer les ' intermédiaires pour ne garder que le premier et le dernier. Mais aussi de remettre [] derrière pseudo, à moins que tu aies une bonne raison de ne pas le mettre.
bonjour,
desoler d'avoir mal saisie ton message lol ...
1 000 excuse
donc finalement tout marche super bien
j'ai rajouter un menu deroulan a la place du inpute , voici le codage php :
<?php
$host =***;
$user = **** ;
$bdd = **** ;
$passwd = ****;
$nbr = $_POST['nbr'];
$i=1;
print("pr verif le nombre de part. est <strong>$nbr</strong> <br> <br> ");
$link = mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
if($nbr) {
echo '<table bgcolor="#000000" cellspacing="2" align="center">'."\n";
echo '<tr>';
echo '<td bgcolor="#990000"><b><span class="Style1">Place</span></b></td>';
echo '<td bgcolor="#990000"><b><span class="Style1">Pseudo</span></b></td>';
echo '</tr>'."\n";
while ($i<=$nbr) {
echo '<tr>';
echo '<td bgcolor="#3D2828"><span class="Style1"><center>'.$i.'</center></span></td>';
$select = 'SELECT pseudo FROM utilisateur';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
echo '<td bgcolor="#3D2828">';
echo '<select name="pseudo[]" size="1">';
echo '<option selected value="0"> - nom du joueur -</option>';
while($row = mysql_fetch_array($result)){
echo '<option value='.$row["pseudo"].'>'.$row["pseudo"].'</option>';
}
echo '</select>';
echo '</td>';
}
mysql_free_result($result);
echo '</tr>'."\n";
$i++;
}
echo '</table>'."\n" ;
echo '<br>';
echo '<input name="Envoyer" type="submit" value="Valider la modification" />';
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_close();
?>
Tout fonctione vraiment merveille , franchement merci bcp
par contre pr la recup j'effectu :
<?
for ($k=1; $k<=$_POST['pseudo']; $k++) {
$pseudo=$_POST['pseudo'][$k];
$place =$_POST['place'][$k];
print("$k <strong>$pseudo
</strong> <br> <br> ");
}
?>
le resultat des menu deroulan (donc nom des joueur) et recuprer et s'affiche ,
mais la boucle continu et ne s arrette jamais ...
desoler d'avoir mal saisie ton message lol ...
1 000 excuse
donc finalement tout marche super bien
j'ai rajouter un menu deroulan a la place du inpute , voici le codage php :
<?php
$host =***;
$user = **** ;
$bdd = **** ;
$passwd = ****;
$nbr = $_POST['nbr'];
$i=1;
print("pr verif le nombre de part. est <strong>$nbr</strong> <br> <br> ");
$link = mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
if($nbr) {
echo '<table bgcolor="#000000" cellspacing="2" align="center">'."\n";
echo '<tr>';
echo '<td bgcolor="#990000"><b><span class="Style1">Place</span></b></td>';
echo '<td bgcolor="#990000"><b><span class="Style1">Pseudo</span></b></td>';
echo '</tr>'."\n";
while ($i<=$nbr) {
echo '<tr>';
echo '<td bgcolor="#3D2828"><span class="Style1"><center>'.$i.'</center></span></td>';
$select = 'SELECT pseudo FROM utilisateur';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
echo '<td bgcolor="#3D2828">';
echo '<select name="pseudo[]" size="1">';
echo '<option selected value="0"> - nom du joueur -</option>';
while($row = mysql_fetch_array($result)){
echo '<option value='.$row["pseudo"].'>'.$row["pseudo"].'</option>';
}
echo '</select>';
echo '</td>';
}
mysql_free_result($result);
echo '</tr>'."\n";
$i++;
}
echo '</table>'."\n" ;
echo '<br>';
echo '<input name="Envoyer" type="submit" value="Valider la modification" />';
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_close();
?>
Tout fonctione vraiment merveille , franchement merci bcp
par contre pr la recup j'effectu :
<?
for ($k=1; $k<=$_POST['pseudo']; $k++) {
$pseudo=$_POST['pseudo'][$k];
$place =$_POST['place'][$k];
print("$k <strong>$pseudo
</strong> <br> <br> ");
}
?>
le resultat des menu deroulan (donc nom des joueur) et recuprer et s'affiche ,
mais la boucle continu et ne s arrette jamais ...
Bonjour
Comment peux-tu comparer $k et $_POST['pseudo'] ? $k est un nombre, $_POST['pseudo'] est un tableau
il aurait fallu faire :
Oui je sais, c'est moi qui avais écrit une bêtise, ça prouve qu'il ne faut pas croire aveuglément...
for ($k=1; $k<=$_POST['pseudo']; $k++) {
Comment peux-tu comparer $k et $_POST['pseudo'] ? $k est un nombre, $_POST['pseudo'] est un tableau
il aurait fallu faire :
for ($k=1; $k<=count($_POST['pseudo']); $k++) {
Oui je sais, c'est moi qui avais écrit une bêtise, ça prouve qu'il ne faut pas croire aveuglément...