Formulaire/bd/php

Fermé
sonia - 29 avril 2005 à 10:06
 sonia - 29 avril 2005 à 16:36
Salut

Sur une page j'ai fait des frames. Dans l'une d'elle j'ai une liste déroulante quand je fais un choix je vais chercher dans ma base de données les données correspondantes (mon submit se fait sur cette frame) et j'aimerais les afficher dans un formulaire sur l'autre frame.

Pas de pb pour récupérer les données mais je ne vois pas du tout comment pour dire "tel champ du formulaire doit prendre tel valeur".

Je ne sais pas si j'ai été trés clair... mais si quelqu'un peut m'aider.
Merci d'avance

2 réponses

bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
29 avril 2005 à 11:27
Bonjour,

il suffit de recharger la page qui doit afficher les données en lui passant en parametre les données résultant de ta requete.

Le mieux est en fait, dans ta frame ou tu fais ton choix, tu recuperes surement un identifiant correspondant a ton choix (genre idElement dans ta base).
Tu passes cette identifiant a la page affichant le resultat
http://mapage.php?choix=$choix

Puis c'est dans cette page que tu vas faire ta requete SELECT:

SELECT mesChamps FROM matable WHERE idElement = $choix

voila voila
0
Bon merci pour ta réponse mais si tu pouvais le refaire plus doucement!!! J'ai commencé PHP et mySQl la semaine dernière alors moi pas tout compris de ce que tu voulais dire...

En fait pour l'instant sur frame1.php (où je fais mon choix) j'ai un submit et <form method="post" action="context_charge.php" target="frame2">

ma requête je la fais dans context_charge.php et j'ai rajouté le target pour afficher dans frame2 mais la pag est blanche...

Si tu peux m'expliquer plus précisemment
merci
0
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
29 avril 2005 à 13:15
ok on va reprendre plus doucement
tu as une liste deroulante du genre
<select name="choix_selection" size=1>
<option selected>Choix de la page
<option value="toto">Page 1
<option value="titi">Page 2
</select>

tu dois egalement avoir une table dans ta base ou tu retrouves tes elements "titi" et "toto".
c'est elements doivent etre, si ta base est bien faite, les identifiants de tes enregistrements.
Si ce n'est pas le cas, tu as un pb de conception de base de données.

le but est de passer le parametre selectionné (titi ou toto) a ta page context_charge.php

Pour te faire comprendre comment ca marche ;-) , on va utiliser la methode GET

ta balise form doit ressembler a ca (methode GET):
<form method="post" action="context_charge.php?choix=choix_selection" target="frame2">


a ce moment ta frame2 doit se recharger et ta barre d'adresse doit contenir :
http://nom_du_serveur/context_charge.php?choix=titi
ou
http://nom_du_serveur/context_charge.php?choix=toto

dans ta page context_charge.php, ajoute ces bouts de code:
$choix = $_GET["choix"];
//ceci permet d'avoir une variable $choix qui recupere l'element (titi ou toto) passé en parametre
echo $choix; //pour afficher ta variable dans ta page pour verifier

ensuite toujours dans cette page, tu executes ta requete afin de recuperer tes donnees dans ta base, en passant comme condition ta variable $choix:
SELECT nom_champ1, nom_champ2 FROM matable WHERE idElement = $choix 


ensuite tu traites tes donnees pour les afficher, mais ca je suppose que tu sais faire...

voila voila, j'ai fait ca en vitesse...
0
bon tu vas me trouver chiante et même trés chiante... mais j'ai beau tourner le truc dans tous les sens j'y arrive pas.

dans frame1.php j'ai :
<form method="post" action="context_charge.php" target="frame2" >
...
<tr>
<td><div align="center"><select name="liste_context">
<?
$sql=mysql_query("SELECT context_properties, context_name FROM context_properties ORDER BY context_name");
while ($res=mysql_fetch_array($sql)) {
echo "<option value=".$res["context_properties"].">\n".$res["context_name"]."</option>";
}
?>
</select></div></td>
</tr>
...
<td><div align="center"><input type="submit" value="Modifier"></div></td>

ce qui m'amène à context_charge.php :
...
$sql=mysql_query("SELECT * FROM context_properties WHERE context_properties='".$_POST['liste_context']."'");
$res=mysql_fetch_array($sql);

donc tout ce que tu as dit j'avais fait sauf ton truc
context_charge.php?choix=choix_selection
et ça je comprend pas bien cmt ça va me permettre d'afficher mes données dans mon formulaire de frame2.php

HELP
0
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
29 avril 2005 à 15:46
on va d'abord verifier que tu passes bien ton parametre:

si dans ta page context_charge.php tu mets
echo $_POST['liste_context'];


est-ce que ca t'affiche la valeur selectionnée dans ta liste déroulante de frame1.php?

je comprend pas bien cmt ça va me permettre d'afficher mes données dans mon formulaire de frame2.php
un doute m'habite : c'est pas dans context_charge.php que tu veux afficher tes donnees??
Pour moi tu avais 2 frames, l'un comportant frame1.php et l'autre context_charge.php...
0
sonia > bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009
29 avril 2005 à 15:59
en fait le truc c que context_charge.php c'est juste où je fais mon action donc ici ma requête et j'ai frame1.php et frame2.php

mais je viens de voir que tu t'en est rendu compte...
et c'est dans frame2.php que je veux afficher. je suis pas s^re que target soit ce qu'il faut utiliser (ça indique où on veut afficher mais ça garde pas le formulaire)

je crois qu'on s'étais pas trop compris et j'espère que maintenant c'est plus clair!!!

sinon le reste marche et
echo $_POST['liste_context'];
affiche ce qu'il faut dans FRAME2.PHP

et donc mon pb c'est d'afficher mes info récupérées dans le formulaire de frame2.php. j'espère que tu comprends mieux mon pb
0
TimeWarp Messages postés 39 Date d'inscription mercredi 10 décembre 2003 Statut Membre Dernière intervention 30 juillet 2008 1 > bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009
29 avril 2005 à 16:22
Bonjour,

Posons l'algo de ton problème si tu veux bien.
Tu a une frame a gauche dans laquelle se trouve les choix de tes pages qui vont s'afficher dans la frame de droite dans la même page.

D'office, si tu veux pas t'embeter, tu crée un tableau de 2 colonnes à la place des frames.

Tes liens dans la frame de gauche doivent être le paramètre (PARAM) que tu passe a ta Frame 2, et cette frame 2 affiche le résultat d'une requête où le paramètre PARAM.

<A HREF="index.php?paramètre=PARAM">Lien</A>

La traduction en PHP ne devrait pas te poser de problème.
Cette méthode marche bien avec la présentation de la page sous forme d'un tableau, et peut poser des problèmes avec les frames.

Dans tous les cas, si tu as soucis, le mieux c'est d'envoyer un post.
0
sonia > bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009
29 avril 2005 à 16:36
Merci pour toutes ces infos mais en fait c'est ce que je suis entrain de faire, un tableau à la place des frames je me ferais moins chier!!!

merci encore
0