Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/04/2008, 00h34   #1
Membre du Club
 
Inscription : mars 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 208
Points : 63
Points : 63
Par défaut C'est le dernier élément du formulaire qui m'est toujours renvoyé

Bonjour,
C'est un truc que j'ai déjà fais des centaines (voir +) de fois mais là le sèche.
Je vais chercher des données dans ma BDD que je récupère et mets en page (avec un while) celà me donne un petit tableau avec un bouton valider me permettant de modifier des champs texte ligne par ligne.
Sauf que la que j'appuie sur n'importe quel bouton celà valide la dernière ligne comme si j'avais mis mon bouton en dehors du while.
Voici le haut de ma page (qui s'exécute après chaque validation):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
include('config.php');
if(isset($_GET['client']) and ($_GET['client']!='')){
$idclient=$_GET['client'];
}
else{
$idclient=$_POST['idclient'];
}
 
if(isset($_POST['submit']) and ($_POST['submit']=='Valider')){
	echo 'idproduit : '.$_POST['idprod'];
	echo 'nomproduit : '.$_POST['nom'];
}
 
?>
et voici la partie qui contitue mon tableau:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<form method="POST" action="accueil.php?client=<?php echo $client; ?>">
<?php
$req="SELECT * FROM produit WHERE idclient='$idclient'";
$query=mysql_query($req) or die (mysql-error());
while($data=mysql_fetch_assoc($query)){
	echo '<tr>
	<td><center>'.$data['refproduit'].'</center></td>
	<td><center><input type="text" name="nom" value="'.$data['nomproduit'].'" size="20"/></center></td>
	<td><center><input type="text" name="quantite" value="'.$data['qteproduit'].'" size="6"/></center></td>
	<td><center><input type="text" name="desc" /></center></td>
	<td><center>'.$data['valid'].'</center></td>
	<td><center><input type="hidden" name="idclient" value="'.$idclient.'" /><input type="hidden" name="idprod" value="'.$data['idproduit'].'" /><input type="submit" name="submit" value="Valider" /></center></td>
	</tr>';
}
?>
</form>
Donc si vous avez une idée je suis preneur car la je sèche vraiment.
Merci d'avance
shelko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 08h54   #2
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
Lorsque tu appuies sur un bouton qui est défini comme étant "submit", le navigateur va retrouver le formulaire dans lequel il est inclu (<form...>...</form>), récuperer TOUTES les valeurs de TOUT les champs nommé (attributs name=...) et les envoyer.

Dans ton exemple, il n'y a qu'un seul formulaire, donc il va envoyer X valeurs pour le name "idclient"... et comme ce n'est pas un tableau, il va envoyer uniquement la derniere.

Si tu veux que ton code fonctionne avec ce modele, il te faut définir X formulaires (<form...>), un pour chaque bouton submit.
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 09h09   #3
Membre Expert
 
Avatar de darkstar123456
 
Inscription : mars 2008
Messages : 1 180
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 1 180
Points : 1 357
Points : 1 357
Envoyer un message via Skype™ à darkstar123456
Comme l'a dit Fladnag, les valeur ne sont pas des tableaux. Ca ne renverra donc que la dernière ligne...

Pour que tes variables deviennent des tableaux, écrit name="monNom[]" au lieu de name="monNom"
darkstar123456 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 09h09   #4
Membre du Club
 
Inscription : mars 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 208
Points : 63
Points : 63
Autant pour moi c'est vrai que d'habitude je mets les balises form dans le while.
Je me doutais que c'était une c..
Merci Fladnag
shelko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h09.


 
 
 
 
Partenaires

Hébergement Web