Page 1 sur 1

Récupérer et afficher les valeurs 'Input' d'un 'While'

Posté : 13 oct. 2012, 17:14
par Franck1234
Bonjour,

J'essaye de récupérer des valeurs à partir d'un nombre variable d'Input provenant d'un While. Les données sont bien envoyées (j'ai testé avec un echo sur un des Input), cependant je n'arrive pas à afficher le résultat.

Je travaille sans base de données, le formulaire devrait juste générer un document.


Voici le code du formulaire:

Code : Tout sélectionner

<?php $nombre_de_lignes = 1; while ($nombre_de_lignes <= $NombreDemande) { echo '<font id="h7">Recherche n°'.$nombre_de_lignes.'</font><br/><input type="text" size="100" name="Rech'.$nombre_de_lignes.'" id="Rech'.$nombre_de_lignes.'" class="UpperCase" onblur="upperMe(this)" /> <input type="checkbox" name="Found'.$nombre_de_lignes.'" id="Found'.$nombre_de_lignes.'" value="Rech'.$nombre_de_lignes.'" /><br />'; $nombre_de_lignes++; } ?>
Le formulaire envoi les variables Rech'.$nombre_de_lignes.' et Found'.$nombre_de_lignes.' .



Voici le code de récupération (essai):

Code : Tout sélectionner

<?php if(!empty($_POST['NombreDemande'])) $NombreDemande=$_POST['NombreDemande']; else $NombreDemande=""; $Demandes = $NombreDemande; for ($nombre_de_lignes = 1 ; $nombre_de_lignes <= $Demandes ; $nombre_de_lignes++) { echo $Rech[".$nombre_de_lignes."]=$_POST['Rech[".$nombre_de_lignes."]'];"<br />"; } ?>

Voici le code pour pour afficher le résultat de la variable $Rec[".$nombre_de_lignes."] (essai):

Code : Tout sélectionner

<?php for ($nombre_de_lignes = 1 ; $nombre_de_lignes <= $Demandes ; $nombre_de_lignes++) { echo "$Rech["$nombre_de_lignes"];""<br />"; } ?>

Si vous voyez les erreurs ou si vous voyez un autre moyen ... :-?

Merci d'avance pour votre aide !

Re: Récupérer et afficher les valeurs 'Input' d'un 'While'

Posté : 13 oct. 2012, 18:23
par sirakawa
Chalut,
voici une variante du code de la saisie (en procédant ainsi, on se dispense des inextricables . / et autres que tu mets dans les echo:
<?PHP 
/*test1.php*/
 $NombreDemande= 6; 
 $texte ="<form method = 'post' action = 'recup.php'>";
for ($num_ligne = 1; $num_ligne <= $NombreDemande; $num_ligne ++) 
{   
	$id = "Rech".$num_ligne;
	$texte .= "Recherche n° $num_ligne
    <br /><input type='text' size='100' name='Rech[]' id='$id' class='UpperCase' onblur='upperMe(this)' /> 
    <input type='checkbox' name= 'Found[]'  id='Found' value='$num_lig' /><br />";
}
$texte .= "<button type = 'submit'>GO</button></form>";
print "$texte";   
?>   
et recup.php
<?PHP
/* dans la mesure où la ligne 0 de $Rech n'est pas vide on sait que la recherche 1 est demandée et ainsi de suite:
il est probablement inutile de garder les cases  à cocher dans test1.php*/
extract($_POST);
print_r($Rech);
$confirmation = "";
$nb = count ($Rech);
for($i = 0;$i <$nb;$i++)
{
	$recherche = trim($Rech[$i]);
	if ($recherche != "")
	{
		$texte .= "<br>$i ème recherche $recherche";	
	}
		
}
print "$texte";
?>

Re: Récupérer et afficher les valeurs 'Input' d'un 'While'

Posté : 14 oct. 2012, 02:27
par Franck1234
Hello,
Merci sirakawa pour la réponse qui m'a fait avancer, j'ai encore des éléments que je n'arrive pas à récupérer, mais c'est peut être la fatigue.
Je vous tiens au courant de la suite sur le sujet.
Merci encore pour l'aide!

Re: Récupérer et afficher les valeurs 'Input' d'un 'While'

Posté : 14 oct. 2012, 17:02
par Franck1234
Bonjour
J'ai reussi voici le code final.
Formulaire :
<?php

$NombreDemande = 3 /*Normalement defini par l'utilisateur - ici 3 en exemple*/

for($num_lignes = 1;$num_lignes <= $NombreDemande;$num_lignes++) 
{
        $id = "Rech".$num_lignes;
echo '<font id="h7">Recherche n°'.$num_lignes.'</font><br/>
<input type="text" size="100" name="'.$id.'" id="'.$id.'" class="UpperCase" onblur="upperMe(this)" /> 
}

?>   
Code de récup:
<?php
extract($_POST);
 foreach($_POST as $k => $v) 
{ 
  if(substr($k,0,4)!= 'Rech') continue; 
  $numLigne = (int)substr($k,4); 
  echo 'ligne '.$numLigne.' : '.$v.'<br />'; 

}
?>
Merci encore pour le coup de pouce!