php ds balise input

Eléphant du PHP | 110 Messages

28 janv. 2008, 22:45

slt
j'ai le code suivant: ce que j'aimerais c'est que la balise input mise en place par php s'increment avec la variable de ma boucle for : $i
j'y arrive pour la balise label mais pas pour input.
voici le code
merci
<?php
if(!empty ($_POST['BT_nb_invites'])){
//echo $_POST['nb_invite'];
//include("test_3.php");
$nb=$_POST['nb_invite'];
//$nb=10;
echo '<form name="liste_invite" id="liste_invite" method="post" action="test_tab.php" >';
for($i=1; $i<=$nb; $i++){
echo '<label>invite_'.$i.'</label><input name="nom_invite <?php echo $i ?>"> type="text" ><label>prénom</label><input name="prenom_invite" type="text" ><label>email</label><input name="email_invite" type="text" ><br>';
}
}// fin condition bt ajout
?>

<input name="BT_envoyer" type="submit" value="envoyer">
</form>
si quelqu'un a une idee

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 janv. 2008, 23:15

Pour ton label, tu fermes ta chaine, affiche la valeur courante de $i et tu nous dis que ça marche.
Pour ton input, tu fait <?= $i ?> et tu nous dis que ça ne marche pas
:array: conclusion ?

Essaye d'uniformiser ton code en utilisant le code qui marche de partout ;)

Sinon, quelques conseils :
1/ Essaye d'indenter ton code, c'est plus lisible et c'est donc plus facile de debugger
<?php
if(!empty ($_POST['BT_nb_invites'])){
	//echo $_POST['nb_invite'];
	//include("test_3.php");
	$nb=$_POST['nb_invite'];
	//$nb=10;
	echo '<form name="liste_invite" id="liste_invite" method="post" action="test_tab.php" >';
	for($i=1; $i<=$nb; $i++){
		echo '<label>invite_'.$i.'</label><input name="nom_invite <?php echo $i ?>"> type="text" ><label>prénom</label><input name="prenom_invite" type="text" ><label>email</label><input name="email_invite" type="text" ><br>';
	}
}// fin condition bt ajout
?>

	<input name="BT_envoyer" type="submit" value="envoyer">
</form>
2/ Ta balise <form> ouvrante est dans le if, donc potentiellement non affiché.
A l'inverse, ta balise fermant </form> est en dehors du if, donc toujours affichée.
Il faut soit que tout soit dans le if, soit rien, mais pas la moitié ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 110 Messages

28 janv. 2008, 23:20

ok ! j'essaie de faire du ménage et je vois
bon j'ai fait du ménage mais je ne vois tjrs pas gd chose :lol:
je suis empêtré ds les guillemet et les quotes
en effet pour la balise label je m'en sort car elle est structuree sans guillemts a l'interieur
par contre pour la balise input je rame, car elle contient des guillemets a l'interieur et j'ai ou de pb de parse ou je retrouve mon code ds la page html je vous met un bout de code mais j'en ai tellement essayé que je sais plus.
echo '<label>invite_'.$i.'</label>''<input name="BT_envoyer"'.$i. 'type="text"' >';
merci A+
yes !!!!! voila j'ai trouvé :lol:
echo '<label>invite_'.$i.'</label><input name="nom_invite'.$i.'"type="text" >';
par contre j'aimerais savoir si c'est bien ecrit ou si on peut faire mieux, en tout cas ca marche
fatigué :shock: