Récupération de données double [Résolu]

Signaler
Messages postés
59
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
20 juillet 2010
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjour
voilà j'ai un p'tit soucis,
J'ai un formulaire que je remplis et j'envoi les données vers une table mysql.
Je fait apparaitre les résultat dans un tableau.
J'aimerai, en cas d'erreur pouvoir récuperer les données de ce tableau vers le formulaire déjà utilisé précédemment.( le bouton modifier est déjà mis en place et m'envoi vers la bonne page, mais c'est la récupération de données qui me pose problème).
Déjà es ce possible?, si oui comment, je peux faire ceci?

9 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Oula...je vais pas me taper tout ça.
Au passage, ton html est vraiment moche...on dirait du html 3.2 (à l'heure du xhtml, c'est dommage!).


Bon, si tu tiens à tout prix à récupérer les infos du tableau (je ne vois tjrs pas pourquoi, mais bon...), tu dois passer par du javascript, oui. Si on se passe d'Ajax, moi je créerais un formulaire caché (enfin, si j'étais aussi têtu que toi, hein... ;-) ) avec les infos à mettre à jour.


Sur les entrées de ton tableau, je foutrais déjà un id sur le <tr> ou ...bref, sur ce qui délimite tes lignes, et un évènement onclick qui va balancer cet id à une fonction js. La fonction js va récupérer l'élément ayant cet id (getElementById()), et les "valeurs" qui s'y trouvent (pour des cellules de tableau, ça va être la propriété innerHTML). Elle va ensuite "populer" le formulaire caché avec ces valeurs, et le soumettre.
Le formulairee, lui, doit évidemment être traoité par un code php qui va faire les mises à jour.


 
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

sans ton code, on ne peut rien faire...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
59
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
20 juillet 2010

ok ok dans ce cas je met un bout ^^

dans le tableau j'ai ceci
<tr><td width50%> Nom </td><td width50%><?php echo text_vide($req_bis["nom_contact"]) ?></td></tr>

Et dans le formulaire j'ai ceci

Nom* : 45 && event.keyCode < 58) event.returnValue = false;if(event.which > 45 && event.which < 58) return false;">
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

perso, je n'ai pas compris ce que tu voulais faire.
Essaye de mieux expliquer.
Si tu mets des données extraites d'une bdd dans un tableau...c'est que ces données, tu les as déjà. Pas besoin d'aller les chercher dans ton tableau html.
Messages postés
59
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
20 juillet 2010

ok ok je vais mieux expliquer alors.
J'ai un formulaire que je remplis de données, un nom, un prénom, un numéro de teléphone, fax, mobile,etc.. et ce sur pour plusieur personnes.
Je récupère le nom avec le numéros de téléphone dans un tableau, avec un lien sur le prénom pour avoir les information complètes de ce contact. En cliquand j'arrive sur un tableau qui affiche toute ses coordonnées. En cas d'erreur j'aimerai pouvoir récuperer les valeur déjà inscrite, dans le formulaire que j'aurai utilisé juste avant pour mettre à jour les coordonnées.( on peu le faire à partir de la base de données mais c'est l'utilisateur basique qui le fera quoi :D lol)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Ben tu réaffiches ton formulaire en y mettant les données que tu affiches dans le tableau, c'est tout ?
Messages postés
59
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
20 juillet 2010

lol voui je sais que c'est ca que je doit faire, le problème c'est que je ne sais pas comment faire. les valeurs du tableau sont extraites de la BDD, et je ne sais pas comment faire en sorte de récuperer les valeurs dans le formulaire. On m'a dit de le faire en javascript mais bon...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Mais pourquoi les récupérer du tableau ? Tu les extraits en php, donc, tu y as accès en php? Un exemple à la va vite :

<?php
//connexion blabla...
$sQuery = 'SELECT id FROM table';
$rRes = mysql_query ($sQuery) or die (...blabla...);
echo '';
$sHtml = ''<form method=\"post\">;
while ($aData = mysql_fetch_row ($rRes)) {
      echo <<<HTML
   ----
{$aData[0]},
HTML;
   $sHtml .= <<<HTML
     
HTML;
}
$sHtml .= '</form>';
echo '
';
echo $sHtml;
?>

Là c'est avec un récupération simple hein. Mais bon.
Messages postés
59
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
20 juillet 2010

oulà.. lol je pense que tu n'as pas du voir le même tableau que moi,voici mes deux codes
le tableau





<?php
Require("function.php");
session_start();

connecter();

$contact= $_GET['i'];
$_SESSION['id_contact'] = $contact;

// On énonce la requête et on l'execute
// Pour sélectionner l'ensemble des informations concernant le contact
$sql="SELECT * FROM contact WHERE num_contact=$contact";
$req=mysql_query($sql) or die('Erreur SQL'.$sql.'
'.mysql_error());
$req_bis = mysql_fetch_array($req);
$titre_courant=$req_bis["titr_courant_contact"];
$titre_interne=$req_bis["titr_interne_contact"];
$fonc=$req_bis["fonction_contact"];
$coll_ca=$req_bis["coll_CA_contact"];
$coll_cp=$req_bis["coll_CP_contact"];
$etablismt=$req_bis["etablissement_contact"];

// Pour l'établissement
if(!empty($etablismt)){$sql_Etblsmt "SELECT nom_etab FROM etablissement WHERE num_etab $etablismt";
$req_eta = mysql_query($sql_Etblsmt) or die ("Erreur SQL pour etablissement !!
.$sql_Etblsmt.
.mysql_error()");
$req_eta_bis = mysql_fetch_array($req_eta);}

// Pour le titre courant
$sql_courant = "SELECT libelle_titr_cour FROM titre_courant WHERE num_titr_cour=$titre_courant";
$req_courant = mysql_query($sql_courant) or die ("Erreur SQL pour le titre courant !!
'.$sql_courant.'
'.mysql_error()");
$req_courant_bis = mysql_fetch_array($req_courant);

// Pour le titre interne
$sql_interne = "SELECT libelle_titr_int FROM titre_interne WHERE num_titr_int=$titre_interne";
$req_interne = mysql_query($sql_interne) or die ("Erreur SQL pour le titre interne !!
'.$sql_interne.'
'.mysql_error()");
$req_interne_bis = mysql_fetch_array($req_interne);

// Pour les fonctions
$sql_fonc = "SELECT libelle_fonc FROM fonction WHERE num_fonc=$fonc";
$req_fonc = mysql_query($sql_fonc) or die("Erreur SQL pour la fonction !
'.$sql_fonc.'
'.mysql_error()");
$req_fonc_bis = mysql_fetch_array($req_fonc);

// Pour le Collège Administratif
$sql_CA = "SELECT libelle_coll FROM college_adm WHERE num_coll=$coll_ca";
$req_CA = mysql_query($sql_CA) or die ("Erreur SQL pour le CA !!
'.$sql_CA.'
'.mysql_error()");
$req_CA_bis = mysql_fetch_array($req_CA);

// Pour le Collège de Perfectionnement
$sql_CP = "SELECT libelle_coll_perf FROM collège_perf WHERE num_coll_perf=$coll_cp";
$req_CP = mysql_query($sql_CP) or die ("Erreur SQL pour le CP !!
'.$sql_CP.'
'.mysql_error()");
$req_CP_bis = mysql_fetch_array($req_CP);

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Intranet Formasup</title>
</head>

<center>Fiche descriptive du Contact

<form method="post" action="AjoutContact.php" name="AjoutContact">
<form method="get" action="ContactSupprime.php" name="ContactSupprime">

Nom, <?php echo text_vide($req_bis["nom_contact"]) ?>,
<?php $_SESSION['Nom']=$req_bis[\"nom_contact\"] ?>

----
Prénom, <?php echo text_vide($req_bis["prenom_contact"]) ?>,

----
Telephone, <?php echo num_vide($req_bis["tel_contact"]) ?>,

----
Fax, <?php echo num_vide($req_bis["fax_contact"]) ?>,

----
Établissement, <?php
if (isset ($req_eta_bis["nom_etab"])){echo text_vide($req_eta_bis["nom_etab"]);}
else {echo"aucune information";}
 ?>,

----
Courriel, <?php echo text_vide($req_bis["mail_contact"]) ?>,

----
Titre Interne, <?php echo text_vide($req_interne_bis["libelle_titr_int"]) ?>,

----
Fonction, <?php echo text_vide($req_fonc_bis["libelle_fonc"]) ?>,

----
Mobile, <?php
if (isset ($req_bis["mobile_contact"])){echo text_vide($req_bis["mobile_contact"]);}
else {echo"aucune information";}
 ?>,

----
Titre courant, <?php echo text_vide($req_courant_bis["libelle_titr_cour"]) ?>,

----
Assemblée Générale, <?php echo binaire($req_bis["AG_contact"]) ?>,

----
Conseil d'Administration, <?php echo binaire($req_bis["CA_contact"]) ?>,

----
Collège au Conseil d'Administration, <?php echo text_vide($req_CA_bis["libelle_coll"]) ?>,

----
Date d'élection, <?php echo text_vide($req_bis["election_contact"]) ?>,

----
Conseil Perfectionnement, <?php echo binaire($req_bis["CP_contact"]) ?>,

----
Collège au Conseil Perfectionnement, <?php echo text_vide($req_CP_bis["libelle_coll_perf"]) ?>,

----
Bureau, <?php echo binaire($req_bis["BUR_contact"]) ?>,

----
Comité Pilote, <?php echo binaire($req_bis["com_pilot_contact"]) ?>,

----
Comité Anniversaire, <?php echo binaire($req_bis["com_anniv_contact"]) ?>,

----
Groupe Travail besoins/ressources, <?php echo binaire($req_bis["GT_bes_ress_contact"]) ?>,

----
Communication, <?php echo binaire($req_bis["comm_contact"]) ?>,

----
Groupe Travail, <?php echo binaire($req_bis["GrTravail_contact"]) ?>
</center>

&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;

Attention toute suppression est définitive

</form></form>
<?php

deconnecter();

?>

</html>






et voici mon formulaire :





<?php
session_start();
require_once("function.php");
connecter();

// On énonce la requête et on l'execute
// Pour l'établissement
$sql_Etblsmt = "SELECT num_etab, nom_etab, ville_eta FROM etablissement ORDER BY nom_etab ASC";
$req_eta = mysql_query($sql_Etblsmt) or die ("Erreur SQL pour etablissement !!
.$sql_Etblsmt.
.mysql_error()");
// Pour le titre courant
$sql_courant = "SELECT num_titr_cour, libelle_titr_cour FROM titre_courant ORDER BY libelle_titr_cour ASC";
$req_courant = mysql_query($sql_courant) or die ("Erreur SQL pour le titre courant !!
'.$sql_courant.'
'.mysql_error()");
// Pour le titre interne
$sql_interne = "SELECT num_titr_int, libelle_titr_int FROM titre_interne ORDER BY libelle_titr_int ASC";
$req_interne = mysql_query($sql_interne) or die ("Erreur SQL pour le titre interne !!
'.$sql_interne.'
'.mysql_error()");
// Pour les fonctions
$sql_fonc = "SELECT num_fonc, libelle_fonc FROM fonction ORDER BY libelle_fonc ASC";
$req_fonc = mysql_query($sql_fonc) or die("Erreur SQL pour la fonction !
'.$sql_fonc.'
'.mysql_error()");
// Pour le Collège Administratif
$sql_CA = "SELECT num_coll, libelle_coll FROM college_adm ORDER BY libelle_coll ASC";
$req_CA = mysql_query($sql_CA) or die ("Erreur SQL pour le CA !!
'.$sql_CA.'
'.mysql_error()");
// Pour le Collège de Perfectionnement
$sql_CP = "SELECT num_coll_perf, libelle_coll_perf FROM collège_perf ORDER BY libelle_coll_perf ASC";
$req_CP = mysql_query($sql_CP) or die ("Erreur SQL pour le CP !!
'.$sql_CP.'
'.mysql_error()");

if (isset($_SESSION['Nom'])){$nom=$_SESSION['Nom'];}else{$nom="";}
if (isset($_POST['Prenom'])){$prenom=$_POST['Prenom'];}else{$prenom="";}
if (isset($_POST['Fax'])){$fax=$_POST['Fax'];}else{$fax="";}
if (isset($_POST['Tel'])){$tel=$_POST['Tel'];}else{$tel="";}
if (isset($_POST['Mobile'])){$mobil=$_POST['Mobile'];}else{$mobil="";}
if (isset($_POST['Mail'])){$mail=$_POST['Mail'];}else{$mail="";}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>Ajout D'un Contact</title>

</head>

AJOUT D'UN CONTACT

<form method ="post" action="Contact_Ajoute.php" name="ajoutcontact">

Nom* : " maxlength = 30 onKeypress="if(event.keyCode > 45 && event.keyCode < 58) event.returnValue = false;if(event.which > 45 && event.which < 58) return false;">
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
Tel :
&nbsp;
" maxlength = 10 onKeypress="if(event.keyCode > 009 && event.keyCode < 11 || event.keyCode > 009 && event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;if(event.which > 009 && event.which < 11 || event.which > 009 && event.which < 45 || event.which > 57) return false;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mobile : " maxlength = 10 onKeypress="if(event.keyCode > 009 && event.keyCode < 11 || event.keyCode > 009 && event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;if(event.which > 009 && event.which < 11 || event.which > 009 && event.which < 45 || event.which > 57) return false;">

Pr&eacute;nom*:
" maxlength = 30 onKeypress="if(event.keyCode > 45 && event.keyCode < 58) event.returnValue = false;if(event.which > 45 && event.which < 58) return false;">
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Fax :
" maxlength = 10 onKeypress="if(event.keyCode > 009 && event.keyCode < 11 || event.keyCode > 009 && event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;if(event.which > 009 && event.which < 11 || event.which > 009 && event.which < 45 || event.which > 57) return false;">

&Eacute;tablissement :
<select name="lstNumEtablissement" value="$_POST['lstNumEtablissement']">
<?php
// On boucle sur la table
while ( $row_eta = mysql_fetch_array( $req_eta)) {

    //création de la liste par indices   
    $num_etab = $row_eta['num_etab'];
    $nom_etab = $row_eta['nom_etab'];
    $ville_eta = $row_eta['ville_eta'];
    echo "<OPTION name='Etblmt' value='$num_etab'>$nom_etab - $ville_eta</OPTION>
";
    }
?>
</select name="lstNumEtablissement">
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;

Titre Courant :
<select name="lstTitreCourant" value="$_POST['lstTitreCourant']">
<?php
// On boucle sur la table
while ( $row_courant = mysql_fetch_array( $req_courant)) {

    //création de la liste par indices   
    $num_titr_cour = $row_courant['num_titr_cour'];
    $libelle_titr_cour = $row_courant['libelle_titr_cour'];
    echo "<OPTION value='$num_titr_cour'>$libelle_titr_cour</OPTION>";
    }
?>
</select name "lstTitreCourant" value="$_POST['lstTitreCourant']">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mail : " maxlength = 40>

Titre Interne :
<select name="lstTitreInterne">
<?php
// On boucle sur la table
while ( $row_interne = mysql_fetch_array( $req_interne)) {

    //création de la liste par indices   
    $num_titr_int = $row_interne['num_titr_int'];
    $libelle_titr_int = $row_interne['libelle_titr_int'];
    echo "<OPTION value='$num_titr_int'>$libelle_titr_int</OPTION>";
    }
?>
</select>

Fonction:
<select name="lstFonction" value="$_POST['lstFonction']">
<?php
// On boucle sur la table
while ( $data = mysql_fetch_array( $req_fonc)) {

    //création de la liste par indices   
    $num_fonc = $data['num_fonc'];
    $libelle_fonc = $data['libelle_fonc'];
    echo "<OPTION value='$num_fonc'>$libelle_fonc</OPTION>";
    }
?>
</select name="lstFonction">

ComPilot
&nbsp;&nbsp;

GTBesRess
&nbsp;&nbsp;

AG
&nbsp;&nbsp;

BUR
&nbsp;&nbsp;

CA
&nbsp;&nbsp;
Coll&egrave;ge au CA :
<select name="lstCollCA" value="$_POST['lstCollCA']">
<?php
// On boucle sur la table
while ( $row_CA = mysql_fetch_array( $req_CA)) {

    //création de la liste par indices   
    $num_coll = $row_CA['num_coll'];
    $libelle_coll = $row_CA['libelle_coll'];
    echo "<OPTION value='$num_coll'>$libelle_coll</OPTION>";
    }
?>
</select>
&nbsp;

Elu :

ComAnniv
&nbsp;&nbsp;
Communication
&nbsp;&nbsp;
GrTravail
&nbsp;&nbsp;

CP
&nbsp;&nbsp;
Coll&egrave;ge au CP :
<select name="lstCollCP" value="$_POST['lstCollCP']">
<?php
// On boucle sur la table
while ( $row_CP = mysql_fetch_array( $req_CP)) {

    //création de la liste par indices   
    $num_coll_perf = $row_CP['num_coll_perf'];
    $libelle_coll_perf = $row_CP['libelle_coll_perf'];
    echo "<OPTION value='$num_coll_perf'>$libelle_coll_perf</OPTION>";
    }
?>
</select>

</form>

Les champs marqués d'un * sont obligatoires.
<?php

mysql_close();

?>
</html>

Voilà j'aimerai lier les cases du tableau et les bonne zone de formulaire, et pouvoir aller de l'un vers l'autre et inversement, tout en sachant que lorsqu'on va du tableau vers le formulaire c'est pour une mise à jour( donc le update) de la BDD