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 13/02/2008, 11h27   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 42
Points : 13
Points : 13
Par défaut récupération de la valeur d'un champ crée dynamiquement

Bonjour,

J'ai en général aucun soucis avec les formulaires, mais là il y quelque chose qui ne fonctionne pas, et je comprend pas pourquoi...

J'ai une page "index.php" qui inclu d'autre page en fonction de critère (choix dans le menu entre autre) dont une page "jour.php" qui contient un tableau dynamique avec la liste des utilisateurs dont la dernière colonne est un champ texte modifiable "remarques", il y a egalement un champ caché avec la date du jour traité. Le submit renvoit vers "action.php" qui inclu l'index où je fais le traitement. Le problème c'est qu'il ne récupère pas la valeur de mon champ remarque. La valeur du jour est bien récuperée.

Jour.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php 
...
 
if($_SESSION['MM_UserGroup']==1){echo '<form id="remarque" name="remarque" method="post" action="action.php"> <input type="hidden" name="jour" id="jour" value="'.$_POST['jour'].'" />';}
 
...
$query_ptage= "select * from ptage left outer join horraire on ptage.$jour_semaine=horraire.id order by ptage.nom, ptage.jour DESC, ptage.heure";
$result_ptage= mysql_query($query_ptage,$Infotel) or die("La requête a échoué : ".mysql_error());
while ($ptage=mysql_fetch_array($result_ptage)){
$badge=$ptage[1];
 
...
 
if($_SESSION['MM_UserGroup']==1){echo '<td><input type="text" name="'.$badge.'" id="'.$badge.'" value="'.$rem.'" /></td>';}
else{echo "<td>".$rem."</td>";}
 
...
}
...
 
if($_SESSION['MM_UserGroup']==1){
echo '<p align="right"><input type="submit" name="remarque" id="remarque" value="Mettre a jour les remarques" /></p>';
echo '</form>';}
?>
Index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php 
...
 
if ((isset($_POST['jour'])) and  ($_POST['jour']!='jour')){
$page=jour;
if(isset($_POST['remarque'])){
$jour=$_POST['jour'];
$query_general= "select badge, id, remarque from ptage where jour='$jour' and jour>=d_contrat AND jour<=d_contrat_fin order by nom, jour, heure";
$result_general= mysql_query($query_general,$Infotel) or die("La requête a échoué : ".mysql_error());
while ($general=mysql_fetch_array($result_general)){
$badge=$general[0];
$id=$general[1];
$rem=$general[2];
     echo 'remarque : '.$_POST['$badge'].'<br>';
if(isset($_POST[$badge]) and ($_POST[$badge]!=$rem)){
$rem=$_POST[$badge];
     echo $rem.' - '.$badge.' - '.$jour.'<br>';
 
/* $query_rem= "Update ptage set remarque='$rem' where id='$id' and jour='$jour'";
mysql_query($query_date,$Infotel) or die("La requête a échoué : ".mysql_error()); */
}}}}
 
...
Les echos sont là pour les tests. $badge et $jour on bien les valeurs attendues, mais $_POST[$badges] est toujours vide. Les guillemets ne change rien, le fait que le champs "remarque" de la DB soit vide ou pas ne change rien.

Merci d'avance pour votre aide.

Nico
nicoda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 11h38   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Bonjour

Dans ce genre de cas, j'ajoute un print_r($_POST) au début de la page de traitement, histoire de voir ce qui passe réellement. Ton $_POST[$badge] est peut-être vide, mais ce qu'il devrait contenir est peut-être passé dans une autre valeur (on ne sait jamais )

Mais ce que je ne comprends pas bien c'est ce que $badge vient faire dans l'affaire. Ton champ ne s'appelle pas remarque ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 12h43   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 42
Points : 13
Points : 13
Merci pour l'idée du print_r($_POST), il y avait un décalage dans mes champs...

Le champ à le numero d'identifiant de l'utilisateur($badge), sinon j'aurrais 50 champs s'appelant remarque... "remarque" c'est le nom du submit.

C'est donc en ordre maintenant! Merci

Nico
nicoda 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 18h59.


 
 
 
 
Partenaires

Hébergement Web