Page 1 sur 3

recupérer valeur liste deroulante sur la même page

Posté : 16 mai 2006, 10:43
par sabine45
Bonjour,

Margré toute mes recherches, les différentes solutions que j'ai trouvé non pas marcher comme je voulais.

J'ai une liste déroulante sur ma page qui est rempli grace à une de mes table. Je voudrai quand je chosi un champ de ma liste déroulante cela maffiche un tableau par rapport a ce choix. En faite, il faut juste que je recupere la valeur pour ensuite la mettre dans une requete qui afficha ma table. Mais je n'arrive pas a recuperer celle-ci.

Vous avez une idée de la manière de procéder ?

Merci d'avance

Posté : 16 mai 2006, 10:50
par charabia
Comment envoies-tu ton formulaire ?

Montres nous le nous. Normalement la valeur à récupérer est la value de chaque option de ton select.

Posté : 16 mai 2006, 11:07
par sabine45
<form name="enreg" method="post" action="">
<?php
 $Req = mysql_query("SELECT nom, mat FROM pers where nom<>''ORDER BY nom"); 
 $ld = "<SELECT NAME='perso'>";
$ld .= "<OPTION VALUE=0>Choisissez</OPTION>";
// On boucle sur la table
while ( $row = mysql_fetch_array($Req)) {
    $nom = $row["nom"];
    $mat = $row["mat"];
    $ld .= "<OPTION VALUE='$mat'>$nom</OPTION>";
}
$ld .= "</SELECT>";
?>
<?php
print $ld;
?>
</form>
voila pour ce qui est de ma liste déroulante

je voudrai que quand j'ai choisi dans la liste déroulante, cela m'affiche automatiquement dans la meme page le tableau.

c'est possible ?
merci

Posté : 16 mai 2006, 11:07
par Ish
Ne t'inquiete pas ma fille (lol) .... tout est possible ...enfin presque ... 8)

Je pense que le mieux et que tu fasse une fonction en JavaScript avec un Onchange()

Comme ça au moment ou tu changera de valeur dans ta liste déroulante, cela renvoie vers une fonction d'affichage avec la valeur que tu auras choisis ...

Posté : 16 mai 2006, 11:19
par charabia
Ish t'as donné la solution :)

Le OnChange va te permettre d'envoyer ton formulaire sur simple choix d'option (sans avoir à cliquer sur un bouton). Une fois le formulaire envoyé, tu passes la valeur de l'option choisie en paramètre.

Il ne te reste plus qu'à le récupérer et afficher ta requête en fonction. Prends soin de ne pas oublier de tester son existence avec isset avant.

Posté : 16 mai 2006, 11:24
par sabine45
ça va si je met ça dans ma liste deroulante
onChange="affichetab(location.enreg.perso.value)"

mais dans ma fonction, je crée le tableau ? je fais comment pour faire en fonction de ma base.

merci

Posté : 16 mai 2006, 11:27
par charabia
Tu crées ton tableau en fonction de la requête retournée. Cette requête utiliseras bien sûr la variable que tu as récupéré avant.

Posté : 16 mai 2006, 11:30
par Ish
Tu fait un script en Java Script
du style
<SCRIPT LANGUAGE="JavaScript">function ChangeValeur(formulaire){ ... }</SCRIPT>
Puis dans ton select
<select size="1" onChange="ChangeValeur(this.form)" name="Liste">
Voilà ... apres tu met ce que tu veux .... et grâce à ta fonction en JavaScript, tu récupere ta valeur et tu l'envoie pour affichage

:)

Posté : 16 mai 2006, 11:34
par sabine45
oki, mais le tabeau, je le fait dans la fonction ? (peine un peu avec les fonctions!!!, et si il y avait que ça :? )

Posté : 16 mai 2006, 11:35
par charabia
mmhh quand tu parles de tableau, tu parles de quel genre ? tableau HTML qui contient les infos par rapport à la variable ?

Posté : 16 mai 2006, 11:36
par sabine45
exactement!!!

Posté : 16 mai 2006, 11:39
par Ish
Je pense, et Charabia me corrigera si je dis des conneries que tu fais ce que tu veux ....
Tu peux faire ton tableau dans ta page php et tu mets une condition :

Code : Tout sélectionner

SI valeur est changé dans select ALORS affichage du tableau FIN SI
ou alors tu le construit dans ta fonction JavaScript donc tu construit aussi la requete en fonction de la valeur que tu aura selectionnée ... puis tu l'envoie dans un tableau et tu l'affiche ...

Voilà .... le JavaScript, c'est presque comme le PHP, sauf que c'est différent ...

Posté : 16 mai 2006, 11:44
par sabine45
J'aime bien la dernière petite phrase :P

Bon je vais essayer de me debrouillé avec se que vous m'avez dit

merci

A bientôt pour de nouvelle aventures

Posté : 16 mai 2006, 11:47
par charabia
On va considérer que tu as réussi à récupérer la variable avec ce qu'on a vu plus haut.

Maintenant avec cette variable tu vas pouvoir construire ta requête. Par exemple SELECT * FROM ta_table WHERE id=".$_POST['id']

Là, la requête va te retourner tous les enregistrements en rapport avec ton ID.

Il te suffira alors de récupérer tous les enregistrements et de les affichers dans ton tableau HTML. S'il n'y a pas de variable passée (page avant sélection), testé avec isset(), tu n'affiches rien, sinon tu affiches ton tableau.

Et comme le dit Ish, tu fais ce que tu veux ;)

Posté : 16 mai 2006, 11:52
par sabine45
oki

Bon, je pensais recupérer la variable avec la fonction
function ChangeValeur(formulaire)
{
$mat=document.enreg.perso.value;
}

puis
if(isset($_POST['mat']))
{$mat=$_POST['mat'];
} 

puis mettre une boucle si
if ($mat <> '') {
ma requete en fonction de $mat et l'affichage du tableau


...}

Voila, j'ai pas encore fini, mais c'est correct ?

encore merki