Problème javascript + liste déroulante + requête SQL

Résolu
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009 - 23 janv. 2009 à 14:17
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009 - 23 janv. 2009 à 16:30
Bonjour, voilà je suis bloqué depuis un bon moment maintenant:
en fait je veux pouvoir, au changement dans une liste déroulante,
récupérer son value afin, par la suite, de pouvoir récupérer des
données présent dans une base de données et les insérer dans mon champs
texte. En gros j'utilise une requête sql:

$sqlquery="select mailchef from glpi_operation where id=(VALUE DE LA LISTE DEROULANTE);


qui utilise le value de la liste déroulante.

Je met le reste du code que j'ai pour l'instant (il ne contient pas de fonctions javascript encore puisque je ne sais pas quoi utiliser )

Code :
<?php
echo"<TR><TH>Operation:
</TH>";
$sqldb=mysql_select_db($sql_DB,$connexion);
$sqlquery="select * from TABLE";
$results=mysql_query($sqlquery);
echo"<TD><select name='operation' id='operation'><option value='-1'>Choisir une operation</option>";
while($ligne = mysql_fetch_array($results))
{
echo "<option value='".$ligne["id"]."'>".$ligne["libelle"]."</option>";
}

echo"</select></TD><TD>";
 
echo'
';
$sqlquery="select mailchef from glpi_operation where id=(VALUE DE LA LISTE DEROULANTE)";
$results= mysql_query($sqlquery);
$row=mysql_fetch_array($results);
addslashes($row['0']);
echo"<CENTER>Mail du chef de vente:
</CENTER>";
echo"<CENTER>.$row['0']."'></CENTER>";
echo"
</TD>";
?>

12 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 janv. 2009 à 16:03
???  effectivement peut-être pas de rapport à priori
quoique....

si ça se trouve, c'est moi qui ne percute pas ?!???
afficher la page html résultante et nous mettre
l'extrait nécessaire ! et pas le php  !!!!
en nous disant où ça coince....

mais si j'ai saisi, c'est la manière de dialoguer/communiquer
entre le php et le html/javascript qui n'est pas compris

          [mon Site] [M'écrire]   Bul         
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 janv. 2009 à 14:31
bonjour,
t'es sûr que c'est un souci javascript ?
tout ce que nous nous met ici c'est du php, voire du sql...

maintenant pour
>>...au changement dans une liste déroulante, récupérer son value...
onchange sur la balise select
son value c'est : cette balise select.options[cette balise select.selectedIndex].value

Cordialement

          [mon Site] [M'écrire] Bul         
0
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 14:37
Justement je sais qu'il n'y a pas de javascript. En fait je demande si on doit utiliser du javascript pour pouvoir récupérer le value de la liste déroulante afin de pouvoir l'utiliser dans ma requête SQL? ou je me trompe completement?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 janv. 2009 à 14:56
bah.. est transmis au php les value des balises qui ont un name
pour la balise select c'est l'option selectionnée
donc, si le select se nomme toto et que le form qui le contient
a action="post", le php gérera $_POST['toto']
nul besoin de javascript ici
          [mon Site] [M'écrire] Bul         
0

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

Posez votre question
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 14:57
a ba ok merci bien 
0
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 15:01
A non ça ne fonctionne pas car en fait la requête SQL est sur la même page que la liste déroulante.
Ce que ça doit me donner en fait c'est que: lorsqu'on change dans la liste déroulante, cela me mette à jour dans le input type='text' le mail du chef. Et pour récupérer ce mail du chef j'utilise la requête SQL
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 janv. 2009 à 15:19
>>A non ça ne fonctionne pas car en fait la requête SQL est sur la même page que la liste déroulante.
???
je pense que tu n'as pas pigé comment on communique entre mtml/javascript et php
ou client/serveur.. comme tu veux
le select est sur une page html. le php, le serveur, on ne connait plus
pour communiquer avec le sql/php... il faut renvoyer un formulaire,
ou changer l'url ( ou ajax, mais ne parlons pas de ça pour l'instant ! )

si tu es coté serveur, le php créé la page html ( donc ta requête sql fait la ! )

pour une ch'tiote explication du comment ça se déroule : regarde ici

Cordialement[mon Site][M'écrire]Bul
0
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 15:40
je me suis peut-être mal exprimé (sûrement même... )
je vais expliquer en détail:
j'ai donc créé une liste déroulante sur la page formulaire.php que je rempli à partir d'une base de données:

$sqldb=mysql_select_db($sql_DB,$connexion);
                                                         
$sqlquery="select * from glpi_operation";     
                                                    
$results= mysql_query($sqlquery);  
                                                                  
echo"<TD><select name='operation' id='operation' onchange='go(this.value)'><option value='-1'>Choisir une operation</option>";

while($ligne = mysql_fetch_array($results))
{
       echo "<option value='".$ligne["id"]."'>".$ligne["libelle"]."</option>";
 }

sur la même page formulaire.php j'ai un input type='text' que je renseigne également à partir d'une base de données:
echo'
';
                $sqlquery="select mailchef from glpi_operation  where id=(VALUE DE LA LISTE DEROULANTE)";                                                            $results= mysql_query($sqlquery);
                $row=mysql_fetch_array($results);
                addslashes($row['0']);
                echo"<CENTER>Mail du chef  de vente:
</CENTER>";
                echo"<CENTER></CENTER>";  echo"
</TD>";

Vous remarquez que pour éxecuter la requête SQL il me faut le value de la liste déroulante. Hors puisque on change tout le temps de value (en changeant ce qu'il y a a l'intérieur de la liste déroulante, me faut-il une fonction javascript qui, lorsque l'on change de ligne dans la liste déroulante, récupère le value et mette à jour du coups mon input type='text' en refaisant la requête SQL? Ou es-ce que ce n'est pas possible tout simplement?
Merci
0
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 15:42
je ne sais pas si je me suis mieux exprimé...
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 janv. 2009 à 15:48
prenez le temps de relire...

>>(VALUE DE LA LISTE DEROULANTE)
donc... la sélection se fait coté client
par l'utilisateur, quand la page est affichée.
or... là vous êtes coté serveur.
donc, rien n'est affiché, la page html
n'existe même pas encore
l'utilisateur ne peut rien faire, il n'a rien sur
son écran, pas la main au moins

reregardez mes exemplcations ( ou d'autres, ça
existe partout )
@+
0
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 15:49
arf a oui j'ai oublié cette fonction javascript qui n'a pas de rapport mais bon on sait jamais:

<script language='javascript'>
function go(texte)
{
if (texte=="-1")
document.getElementById("test").style.visibility= 'hidden';
else
document.getElementById("test").style.visibility= 'visible';
}
</script>
0
exorzist Messages postés 12 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 16:30
non mais pas de problème finalement je n'aurai pas besoin de faire cela donc merci quand même d'avoir répondu si rapidement... cela restera un mystère
0
Rejoignez-nous