Réafficher des données modifiées

Eléphant du PHP | 65 Messages

23 févr. 2011, 17:29

Bonjour,
//Ma page récupère et affiche les lignes de données depuis ma base :

while ($lignes = mysql_fetch_assoc($result)) {
echo $lignes['codearticle'].' | ';
echo $lignes['designation'].' | ';
echo $lignes['prix'].' | ';

//En même temps que cet affichage je place en bout de chaque ligne 2 input :

// un pour saisir la quantité				
echo '<input type="text" name="quantite" id="quantite" value="'.$qte.'">';

// et un pour marquer la ligne
echo '<input type="radio" name="cd'.$i.'" value="c">'.' / ';				
echo '<input type="radio" name="cd'.$i.'" value="d">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="0" checked>';
echo '<br>'; //fin de ligne
}

//j'obtiens donc une liste de N lignes qui s'affichent
//je saisis ensuite les valeurs à text et radio 
// pas de Pb jusque là
Mon Pb:

Maintenant je veux que ces lignes avec des valeurs personnalisées (text et radio) s'affichent après les avoir envoyées par POST.
Je ne peux évidemment pas me servir de la boucle while pour récupérer mes lignes modifiées puisque le boucle ne sert qu'à afficher les données.

Il me semble devoir obligatoirement créer un array() pour récupérer ces lignes avec les valeurs de text et radio, et réafficher ces lignes ensuite ?

Avez-vous une solution simple ? :?:

Cordialement
Jacques.

ViPHP
xTG
ViPHP | 7331 Messages

23 févr. 2011, 17:36

Je ne peux évidemment pas me servir de la boucle while
Pourquoi pas ? ^^
=> Si la valeur $_POST correspondante existe c'est elle qu'on affiche, sinon c'est celle récupérée via le while.

Par contre je vois comme un soucis, tu as une boucle mais tu réaffiches les mêmes input avec les mêmes nom. (cf quantité)

Eléphant du PHP | 65 Messages

23 févr. 2011, 17:54

Merci xTG déjà de l'intérêt que tu portes à mon Pb.

> tu as une boucle mais tu réaffiches les mêmes input avec les mêmes nom.

C'est bien le Pb.

Quand le formulaire n'est pas soumis (boucle while) les modifs de valeurs de text et input text ne sont pas pris en compte par $_POST.

Ce sont les valeurs après la soumission qu'il me faut récupérer.

ViPHP
xTG
ViPHP | 7331 Messages

23 févr. 2011, 18:38

Non ce que je voulais dire c'est que dans ta page tu as plusieurs input avec comme name quantite (et aussi avec le même id).
Il faudrait que tu concatènes le nom avec la clé primaire de ta table.
echo '<input type="text" name="quantite_' . $lignes['codearticle'] . '" id="quantite_' . $lignes['codearticle'] . '" value="'.$qte.'">';
Et pour la valeur tu peux faire ainsi :
if( isSet($_POST['quantite_' . $lignes['codearticle']]) )
  $qte = $_POST['quantite_' . $lignes['codearticle']];
else
  $qte = $lignes['qte'];