Souci de Post avec des variables dynamiques

Résolu
Odeatho -  
 Odeatho -
Bonjour a tous,
Je vous explique mon souci ,
en fait je crée un tableau dynamiquement en fonction du résultat d'une requête sql ( je crée autant de lignes que de personnes dans ma table)
et j ai crée deux input text par lignes.
Comme ils sont dynamiques , ils se nomment nbSite_$i avec $i comme itérateur.

en fait , le souci c est que je n arrive pas a récupérer les variables contenues dans les champs textes de mes input dynamiques. ( c est possible que j ai commis une grosse faute je ne suis pas un expert)

voici le code :

<?php $week = date("W"); ?>
										<caption>Tableau des Sites classés en semaine <?php echo $week ?></caption>
									<?php
										require ('config.php');
										$db_table='relance';
										mysql_connect ($db_server, $db_user, $db_pass);
										mysql_select_db($db);
										$sql_tab="SELECT DISTINCT `$st` FROM `$db_table` ORDER BY `$st` ";
										$res_tab =mysql_query($sql_tab);
										$i=0;
									while($ligne=mysql_fetch_assoc($res_tab)) { ?>
									<form method="POST" action ="Site.php" >
											<tr class='odd' >
												<td width=20%>
												<?php echo "Sous_traitants" ?><br/>
											<select name='stsc_$i' id='stsc_$i'>
											<OPTION selected value=1 >Tous
											<?PHP
											require ('config.php');
											$db_table='relance';
											mysql_connect ($db_server, $db_user, $db_pass);
											mysql_select_db($db);
											$sql="SELECT DISTINCT `$st` FROM `$db_table` ORDER BY `$st` ";
											$res=mysql_query($sql);
											while($ligne=mysql_fetch_assoc($res))
												echo "<option value='".$ligne[$st]."'>".$ligne[$st]."</option>";
													?>
													</select>
													</td>
												<td width=20%>
														<?php echo "Nombre de sites  classés" ?><br/>
													<input type='text' name='nbSite_$i'  value='' size='30'/>
													</td>
												<td width=20%>
													<?php echo "Nombre de sites  classés avec retard" ?><br/>
													<input type='text' name='nbSiteR_$i'  value='' size='30'/>
													</td> 
													</tr> <?php $i++; } ?>
										</table>
										<input class=Perso  type="submit"  value="envoyer" />
										<input type=hidden name=enregistrer value=ok>
										<h2><a href="Relance.php"> Accéder à la page des Relances </a> <b/></h2>
										<h2><a href="Stat.php"> Accéder à la page Statistiques </a></h2> </form>
											<?php
												if(isset($_POST['enregistrer']))
													{
														$Verif=true;
														for($d=0;$d<$i;$d++)
														{
																if( isset($_POST['stsc_'.$d]) )
																{
																}
																if( isset($_POST['nbSite_'.$d]) )
																{
																}
																if(isset($_POST['nbSiteR_'.$d]))
																{
																}
													}	
											?>

mais jamais ca ne passe les isset. ( a part enregistrer bien sur)
Je ne comprends pas d'où ça vient.
J'ai lu les réponses sur un problème similaire au mien et je n ai pas réussi a m'en sortir quand meme.
Je vous remercie?
A voir également:

5 réponses

doudi
 
Bonjour ,

1er chose ton form doit etre à l'extérieur de ta boucle.
0
Odeatho
 
si tu parles de la boucle du while , le form est dedans
0
Odeatho > Odeatho
 
ah la deuxieme boucle autant pour moi désolé je tes et je te redis
0
doudi
 
j'ai un peu retravailler ton code :

<?php
require ('config.php');

$db_table = 'relance';
$link = mysql_connect ($db_server, $db_user, $db_pass);
mysql_select_db($db,$link);
			
$sql_tab = "SELECT DISTINCT `$st` FROM `$db_table` ORDER BY `$st` ";
$res_tab = mysql_query($sql_tab);

$liste = array();
while($ligne = mysql_fetch_assoc($res_tab)) {
  $liste[] = $ligne;
}
$nb = count($liste);
mysql_free_result;
mysql_close($link);
?>

<form action="Site.php" method="post">
  <?php 
 
  for($i = 0;$i<$nb;++$i){?>
  <p>
    <label>Sous Traitants : </label>
    <select name='stsc_<?php echo $i;?> id='stsc_<?php echo $i;?>'>
        <?php foreach($liste as $values){?>
      
      <option value="<?php echo $values['$st']?>"><?php echo $values['$st'];?></option>
       
       <?php } ?>
    </select>  
  </p>
  <p>
    <label>Nombre de sites  classés : </label>
    <input type="text" name="nbSite_<?php echo $i;?>" /> 
  </p>
  <p>
    <label>Nombre de sites  classés avec retard : </label>
    <input type="text" name="nbSite_<?php echo $i;?>" /> 
  </p>
  <?php } ?>
</form>
0
Odeatho
 
j'ai testé avec le code que tu as fait ( y a plus le tableau mais c est pas un souci )

Lorsque j ai rempli les champs et que je fais envoyer,
La page me dit : undefined index stsc_0 et pareil pour nbSite et nbSiteR

ca me fait ca depuis le début , on dirait que mes variables ne passant pas par post
J'ai testé avec GEt mais la c est pire car GET remplace le charactere $ par %24

merci de ta réponse rapide
0
doudi
 
Fais un code source de ta page et regarde s'il y a bien nbSite_0 ou 1 dans les champ input?
0
doudi
 
Tu a bien fermé la balise </form> j'espere et ton bouton <input type="submit"> doit être à l'intérieur .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
doudi
 
Je viens de tester mon code et il fonctionne il me manque juste une petite code au niveau du select .
0
Odeatho
 
Oui mon input submit est dans le form.
Par contre dans ton code , cette ligne
<select name='stsc_<?php echo $i;?> id='stsc_<?php echo $i;?>'>
tu es sur qu il ne manque pas des ' ?

car dans le code source j ai cela :
<select name='stsc_0 id='stsc_0' >

j'ai l'impression qu il manque un ' apres le name

je te remercie
0
Odeatho > Odeatho
 
effectivement j'ai rajouté le ' dans le name et ca marche.
Je te remercie , je vais rajouter le tableau dans tout ca et ce sera bon .
Merci beaucoup
0