Récuperer la valeur d'un <select> afin d'exécuter une requete.

bousky79 Messages postés 5 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 17 déc. 2009 à 16:07
bousky79 Messages postés 5 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 22 déc. 2009 à 11:59
Bonjour tout le monde,

J'ai vraiment besoin de votre aide. Je suis en train de developper un petit outil, en php (Il y a aussi du javascript).
Mon probleme est le suivant, attacher vous bien car vous allez peut etre rigoler (Je suis vraiment un pietre developpeur).

J'ai une requete sql qui affiche des resultats dans un menu deroulant. Au click (selection), je souhaiterai récuperer la valeur choisit afin qu'elle me permette d'exécuter une autre requete, qui sera affiché dans un autre menu deroulant, et ca sur la meme page.
question 1: est ce que c'est deja possible?
question 2: Comment faire?
question 3: Est ce que j'ai ete assez clair?

Je vous remercie d'avance pour votre aide. Je sais je dois tout revoir a zéro. lol

Merci.

Skito

6 réponses

zouzou46 Messages postés 17 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 21 décembre 2009
18 déc. 2009 à 15:48
Bonjour,

3) oui, c'est clair
1) oui, c'est possible
2) deux solutions A (la solution "sale") et B (la solution "propre") ci-dessous

A) La solution "sale"
dans la balise SELECT, rajouter un attribut onChange qui fait un Submit du formulaire
La page va alors être rechargée, et devra récupérer (en POST de préférence) la valeur sélectionnée dans la première listbox pour en construire une seconde

B) La solution "propre" (Ajax)
dans la balise SELECT, rajouter un attribut onChange qui fait un appel à une fonction Javascript/Ajax
Cette fonction Javascript/Ajax appelle un script (php ou autre) qui construit la seconde listbox et la lui renvoie
Elle n'a alors plus qu'à afficher la listbox reçue
Là encore, des solutions plus ou moins "propres"
a) la sous-solution "sale". le script php renvoie la listbox sous forme de texte (responseText)
b) la sous-solution "correcte". le script php renvoie la listbox sous forme de XML (responseXML)
c) la sous-solution "proppre". Utiliser JSON pour renvoyer un objet Javascript

Est ce que j'ai ete assez clair ?
0
bousky79 Messages postés 5 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 16:04
Bonjour Zouzou,

Merci pour tes reponses, je ne l'ai pas encore test, mais ca me parrait clair. Si j'ai des soucis je reviendrai vers toi pour plus de precision.
Merci encore.

Skito
0
bousky79 Messages postés 5 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 17:12
Heu...!!! juste au passage, est ce que je peux poster mon code pour que tu me dises s'il est ok?? Merci

Skito
0
zouzou46 Messages postés 17 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 21 décembre 2009
21 déc. 2009 à 17:14
oui, si il n'est pas trop
0

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

Posez votre question
bousky79 Messages postés 5 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 19:28
J'ai pu partiellement régler mon pb, j'ai opté pour un bon vieux formulaire, et un $_POST['**']. Ca fait ce que je veux, mais bon je reviendrai vers toi, pour le JS. Merci encore.

Skito
0
bousky79 Messages postés 5 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 11:59
Re-salut,

Finalement je vais poster mon bout de code, car j'ai du mal à garder ma variable apres le submit.
Sachant que c'est sur la meme page et que le submit ne fait qu'envoyer la variable selected de mon menu deroulant pour l'exécution de ma deuxieme requete.


<form method="POST" name="toto" action="">
TOTO:,
<?php

$connexion = ocilogon("DB","pwd","user ");

$query = "SELECT toto.name AS toto FROM Ttable";

$stmt = OCIParse($connexion, $query);

OCIExecute($stmt);

echo "<select name='toto' style='width:100px;'>";

While (ocifetch($stmt)) {

echo "<option>".OCIResult ($stmt, "TOTO")." \n";

}
echo "</select>";

OCILogOff($connexion);
?>,
</form>,
TITI:,
<?php

if (isset($_POST['toto'])){

$nom_toto = $_POST['toto'];

$connexion = ocilogon("DB","pwd","user ");

$query = "SELECT titi.name AS TITI FROM Ttable
WHERE toto.name = '$nom_toto'";

$stmt = OCIParse($connexion, $query);

OCIExecute($stmt);

if(!empty($nom_toto)){
//ok pas vide

echo "<select style='width:100px;'>";

While (ocifetch($stmt)) {
echo "<option>".OCIResult ($stmt, "titi")."
\n";
}
echo "</select>";

OCILogOff($connexion);

}
}
?>


Je veux bien test, le JS, parce que je crois que ca marche surper bien, mais je ne sais comment le faire. Thanx for your help

Skito
0
Rejoignez-nous