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

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 10:43

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 10:50

Comment envoies-tu ton formulaire ?

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

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 11:07

<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

Ish
Eléphant du PHP | 200 Messages

16 mai 2006, 11:07

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 ...
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 11:19

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.

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 11:24

ç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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 11:27

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.

Ish
Eléphant du PHP | 200 Messages

16 mai 2006, 11:30

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

:)
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 11:34

oki, mais le tabeau, je le fait dans la fonction ? (peine un peu avec les fonctions!!!, et si il y avait que ça :? )

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 11:35

mmhh quand tu parles de tableau, tu parles de quel genre ? tableau HTML qui contient les infos par rapport à la variable ?

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 11:36

exactement!!!

Ish
Eléphant du PHP | 200 Messages

16 mai 2006, 11:39

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 ...
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 11:44

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 11:47

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 ;)

sabine45
Invité n'ayant pas de compte PHPfrance

16 mai 2006, 11:52

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