Remplir un champs text a partir d'un menu deroulant [Résolu]

ahajgouno 11 Messages postés mardi 5 juillet 2005Date d'inscription 29 juillet 2005 Dernière intervention - 13 juil. 2005 à 15:32 - Dernière réponse : cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention
- 14 juil. 2005 à 14:01
J'ai crée un menu deroulant en php qui recupere les champs d'une table et les affiche.
j'ai aussi une zone texte description dans ma page.
ce que je veu, c'est quand un user selectionne en cliquant sur un choix du menu deroulant, il voit s'afficher automatiquement la description (stockée dans la base) associé a ce choix.
Donc il faut que je recupere le choix puis j'effectue une requete pour afficher la description associée au choix selectioné sur la zone text automatiquement.

klkun peut m'aider?
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
sephiroth1020 56 Messages postés mardi 4 janvier 2005Date d'inscription 10 octobre 2005 Dernière intervention - 13 juil. 2005 à 17:40
3
Merci
Je te donne une petite solution: la page s'appelle : remplir.php





<form name="form" method="post" action="remplir.php">//La page reboucle

<select onChange="submit()" name="select" >

<?

$rep=mysql_query("select * from table");


$rep=mysql_query("select
count(*) from table");

$r=
mysql_fetch_array($rep);
$nbr=$r[0];


for($ii=0;$ii<$nbr;$ii++) {$r=
mysql_fetch_array($rep);?>

<option><? echo $r['choix'];?></option>

<? }?>
// Si on clique sur un choix
<? if ((isset($_POST['select']))

{ //debut if
$rep=mysql_query("select description from table where choix='$_POST['select']' ");


$r=mysql_fetch_array($rep);
echo '<textarea name="description"> <? echo $r['description']; ?> </textarea>
<? } ?> //fin if
</select>

</form>

Si tu as d'autres questions n'hesite pas a les poser

Merci sephiroth1020 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de sephiroth1020
sephiroth1020 56 Messages postés mardi 4 janvier 2005Date d'inscription 10 octobre 2005 Dernière intervention - 13 juil. 2005 à 17:38
0
Merci
Je te donne une petite solution: la page s'appelle : remplir.php





<form name="form" method="post" action="remplir.php">//La page reboucle

<select onChange="submit()" name="select" >

<?

$rep=mysql_query("select * from table");


$rep=mysql_query("select
count(*) from table");


$r= mysql_fetch_array($rep);

$nbr=$r[0];


for($ii=0;$ii<$nbr;$ii++) {$r=
mysql_fetch_array($rep);?>

<option><? echo $r['choix'];?></option>

<? }?>

// Si on clique sur un choix

<? if ((isset($_POST['select']))

$rep=mysql_query("select description from table where choix='$_POST['select']' ");


$r=mysql_fetch_array($rep);

echo '<textarea name="description"> <? echo $r['description']; ?> </textarea>



</select>

</form>



Si tu as d'autres questions n'hesite pas a les poser
Commenter la réponse de sephiroth1020
ahajgouno 11 Messages postés mardi 5 juillet 2005Date d'inscription 29 juillet 2005 Dernière intervention - 13 juil. 2005 à 17:52
0
Merci
Merci infiniment sephiroth1020.
Commenter la réponse de ahajgouno
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 13 juil. 2005 à 19:53
0
Merci
Salut,



<? est à remplacer par <?php



il faut éviter d'utiliser un SELECT * dans ta table, surtout que là apparemment tu n'as besoin que du champ "choix"



ensuite ta première variable $rep est écrasée par la suivante, ça ne
peut donc pas fonctionner. Préfère ensuite le mysql_fetch_row($requete)
au mysql_fetch_array()



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
sephiroth1020 56 Messages postés mardi 4 janvier 2005Date d'inscription 10 octobre 2005 Dernière intervention - 14 juil. 2005 à 09:15
0
Merci
Ce n'est pas obligatoire de changer <? par <? php car dans les deux cas ça marche.
La variable $rep n'est ecrasé que lorsqu'on en a plus besoin pour le remplissage du ComboBox.
Pour le SELECT * tu as completement raison, car dans le cas ou on a une grande base de données cela va alourdir la requette
Commenter la réponse de sephiroth1020
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 14 juil. 2005 à 09:22
0
Merci
Hello,



pour les tags <?php ou <? cela va marcher chez toi peut-etre, et
pas mal d'hebergeur....mais pas chez moi, ni chez certains hebergeurs.
Et de plus en plus d'hebergeurs auront le short_open_tags a off, a
cause du xml.

C'est donc une bonne habtiude a prendre que d'utiliser <?php...parce
que le jour ou ca ne marchera plus chez ton hebergeur, tu auras l'air
malin a reprendre tous tes scripts, juste pour changer ce tag... ;-) Et
tu souhaiteras vivement avoir pris cette habitude avant, crois-moi.



Pour l'exemple xhtml/xml, essaye cet entete qui va devenir de plus en plus frequent, dans une page .php :



<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>

<title>Titre</title>

<LINK rel="stylesheet" type="text/css" href="css/styles.css" media="screen" />

<script type="text/javascript" src="js/js.js"></script>

</head>



Pour $rep :

$rep=mysql_query("select * from table");

$rep=mysql_query("select count(*) from table");

$r= mysql_fetch_array($rep);



Je ne vois pas non plus comment cela peut marcher, d'entree. Ton 1er
$rep est en effet ecrase par le second. Le 1er ne sert donc juste a
rien.

C'est comme si tu faisais :

$chaine = 'toto';

$chaine = 'tata';

echo $chaine;



$chaine = 'toto'; ne sert a rien.
Commenter la réponse de malalam
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 14 juil. 2005 à 11:57
0
Merci
Héhé, ça me fait toujours marrer, je sauvegarde ce topic ;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 14 juil. 2005 à 12:25
0
Merci
Ouais, de toutes evidences, ca a du mal a rentrer ;-)
Commenter la réponse de malalam
sephiroth1020 56 Messages postés mardi 4 janvier 2005Date d'inscription 10 octobre 2005 Dernière intervention - 14 juil. 2005 à 12:31
0
Merci
Merci pour ton intro...

le premier $rep sert a remplir le combobox
et en suite il est ecrasé pour remplir le champ texte

Relis DOUCEMENT cette partie et tu veras

Merci encore
Commenter la réponse de sephiroth1020
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 14 juil. 2005 à 12:45
0
Merci
Je relis, mais tu ne l'utilises pas.
Tu lui assignes une 1ere ressource, puis une seconde, a la suite.
Et quand tu fais ca :
$r= mysql_fetch_array($rep);
c'est uniquement la seconde ressource qui est utilisee, jamais la 1ere.
Commenter la réponse de malalam
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 14 juil. 2005 à 12:54
0
Merci
C'est clair, le meilleur c'est qu'il s'obstine en plus ;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
sephiroth1020 56 Messages postés mardi 4 janvier 2005Date d'inscription 10 octobre 2005 Dernière intervention - 14 juil. 2005 à 13:50
0
Merci
D'accord, adjugé
Commenter la réponse de sephiroth1020
sephiroth1020 56 Messages postés mardi 4 janvier 2005Date d'inscription 10 octobre 2005 Dernière intervention - 14 juil. 2005 à 13:52
0
Merci
<form name="form" method="post" action="remplir.php">//La page reboucle
<select onChange="submit()" name="select" >
<?php
$rep=mysql_query("select choix from table");
$rep2=mysql_query("select count(*) from table");
$r= mysql_fetch_array($rep2);
$nbr=$r[0];
for($ii=0;$ii<$nbr;$ii++) {$r= mysql_fetch_array($rep);?>
<option><? echo $r['choix'];?></option>
<?php }?>
// Si on clique sur un choix
<?php if ((isset($_POST['select']))
{ //debut if
$rep=mysql_query("select description from table where choix='$_POST['select']' ");
$r=mysql_fetch_array($rep);
echo '<textarea name="description"> <? echo $r['description']; ?> </textarea>
<?php } ?> //fin if
</select>
</form>

ça va mieux comme ça
Commenter la réponse de sephiroth1020
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 14 juil. 2005 à 14:00
0
Merci
Enlève l'attribut name de ton form, remplace <? par <?php (il en
reste) ensuite remplace le mysql_fetch_array() par un mysql_fetch_row()
en récupérant tout ça avec des indices numériques. Pour finir enlève ta
requête SELECT COUNT et utilise à la place un mysql_num_rows() sur ta
requête 1.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 14 juil. 2005 à 14:01
0
Merci
et puis remplace ton for par une boucle while c'est largement plus propre...



tu n'as même plus besoin du mysql_num_rows...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.