Remplir un champs text a partir d'un menu deroulant

Résolu
ahajgouno Messages postés 11 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005 - 13 juil. 2005 à 15:32
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 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?

15 réponses

sephiroth1020 Messages postés 56 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 10 octobre 2005
13 juil. 2005 à 17:40
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
3
sephiroth1020 Messages postés 56 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 10 octobre 2005
13 juil. 2005 à 17:38
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
0
ahajgouno Messages postés 11 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
13 juil. 2005 à 17:52
Merci infiniment sephiroth1020.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 juil. 2005 à 19:53
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sephiroth1020 Messages postés 56 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 10 octobre 2005
14 juil. 2005 à 09:15
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juil. 2005 à 09:22
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.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juil. 2005 à 11:57
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>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juil. 2005 à 12:25
Ouais, de toutes evidences, ca a du mal a rentrer ;-)
0
sephiroth1020 Messages postés 56 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 10 octobre 2005
14 juil. 2005 à 12:31
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juil. 2005 à 12:45
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.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juil. 2005 à 12:54
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>
0
sephiroth1020 Messages postés 56 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 10 octobre 2005
14 juil. 2005 à 13:50
D'accord, adjugé
0
sephiroth1020 Messages postés 56 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 10 octobre 2005
14 juil. 2005 à 13:52
<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
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juil. 2005 à 14:00
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>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juil. 2005 à 14:01
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>
0
Rejoignez-nous