Ouverture popup lors de changemt ds 1 liste deroulante [Résolu]

Signaler
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
-
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
-
>Bonjour a tous,
alors voila mon probleme :
Je recupere a partir d'une fonction des champs d'une table dans une liste deroulante de mon formulaire
voila le code de la fonction et celui du form.

fonctionslistes.php
//////////////////////////////////////////////
function affichelistetech2($codetechnicien,$nom,$allowempty)
{
$query="SELECT codetechnicien, nom FROM techniciens where nom!='CLIENT' ORDER by nom";
$req=mysql_query($query);
echo "<select name='$nom'>";
if($allowempty!=0)
echo "<option value=""></option>";
while($line = mysql_fetch_array($req))
{
$tmpcode=$line["codetechnicien"];
$tmpnom=$line["nom"];
echo "<option";

if($codetechnicien==$tmpcode)
{ echo " selected"; }
printf(" value ="%d">%s</option>\n",$tmpcode,$tmpnom);
}
echo "</select>\n";
///////////////////////////////////////////////////////////

form.php (j'ai pris que le bout qui pose probleme) -- explication apres le code
/////////////////////////////////////////////////////
<td>Assigné à : </td>
<td>
<? if($admin){
if(!empty($codeclient))
affichelistetech2($codetechnicien,"codetechnicien",1);
else
affichelistetech22($codetechnicien,"codetechnicien",1);
} else {
if($codetechnicien==NULL)
$codetechnicien='15';

$sql2="SELECT nom FROM techniciens
WHERE codetechnicien='$codetechnicien'";

$requete2 = mysql_query($sql2) or die (mysql_error());
$nomtechnicien = @mysql_result($requete2,"0","nom");?>
">
">
<? }
//ajout d'un test permettant de re-remplir le champ si il est effacé par mégarde
if(isset($codetechnicien)){?>
<script>
document.forms.formu.assi.value=document.forms.formu.codetechnicien.value;
document.forms.formu.okassi.value=1;
</script></td>
<? } ?>
/////////////////////////////////////////////
voila donc si on a les droits ($admin) on affiche la liste des techniciens.
Mais le plus souvent le technicien n'est pas attribue : il a pour valeur 15 ce qui correspond a "a definir"

Je voudrais que lorsque je change de choix dans ma liste deroulante je puisse faire apparaitre une popup qui me demande si je veux envoyer un mail aux techniciens pour le prevenir...

Le code pour le mail c'est pas un probleme j'ai deja fait un truc du genre mais je n'arrive absolument pas a placer mon ouverture de popup automatique lorsque je change de choix

HELP ME PLEASE !!!

Atomik29

5 réponses

Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

Il faut que tu fasse correspondre

echo "<select name='$nom'>";

avec

index = document.mon_form.mon_select.selectedIndex;
valeur = document.mon_form.mon_select.options[index].value;

de même, il faut que ta balise form correspondent comme suit :
<form name="mon_form">
et
index = document.mon_form.mon_select.selectedIndex;

valeur = document.mon_form.mon_select.options[index].value;

N'oublie pas non plus de transmettre les paramètres qui t'intéresse ici

window.open('validation.php?id='+valeur);

j'avais mis id, comme exemple, tu mets ce que tu veux recevoir dans ton fichier validation.php (tu reçoit pour l'instant $_GET['$id'] dans ton fichier validation.php)

huberdine, mais dort aussi ...
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

tu appelles ton popup sur un onchange de ta liste.
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

tu peux faire comme ça :

echo "<select name='$nom' onChange="window.open ('fenetre_popup.php')">";

plus d'info sur la fonction window.open : http://www.destrucsaweb.com/ressources/phpmyannu/goto_36.php


Si tu veux passer des paramètres à fenetre_popup.php
:

<script language='JavaScript'>
function ma_popup()
{
index = document.mon_form.mon_select.selectedIndex;
valeur = document.mon_form.mon_select.options[index].value;
window.open('fenetre_popup.php?id='+valeur);
}
</script>

<form name="mon_form">
<select name="mon_select" onChange="window.open ('ma_popup();')">
<option value="1">Mon option 1</option>
</select>
</form>



huberdine, mais dort aussi ...
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
Merci mais j'ai pas du tout pige
J'ai fait ca mais rien ne sactualise lorsque je change la valeur dans la liste

fonctionlistes.php
/////////////////////////
<?
session_start();
?>

<script language='JavaScript'>
function ma_popup()
{
index = document.mon_form.mon_select.selectedIndex;
valeur = document.mon_form.mon_select.options[index].value;
window.open('validation.php?id='+valeur);
}
</script>
..................
..................
function affichelistetech2($codetechnicien,$nom,$allowempty)
{
$query="SELECT codetechnicien, nom FROM techniciens where nom!='CLIENT' ORDER by nom";
$req=mysql_query($query);
// echo "<select name='$nom'>";
echo"<select name='$nom' onChange='window.open ('ma_popup();')'>";
if($allowempty!=0)
echo "<option value=""></option>";
while($line = mysql_fetch_array($req))
{
$tmpcode=$line["codetechnicien"];
$tmpnom=$line["nom"];
echo "<option";
if($codetechnicien==$tmpcode)
{
echo " selected";
}
printf(" value ="%d">%s</option>\n",$tmpcode,$tmpnom);
}
echo "</select>\n";
}

//////////////////////////////////////////
et je n'ai rien modifie dans mon form.php puisque le <select ..... est dans la fonction
se trouvant dans lotre fichier.
donc jappelle la fonction comme ceci :
<td>Assigné à : </td>
<td>
<? if($admin){
if(!empty($codeclient))
affichelistetech2($codetechnicien,"codetechnicien",1);
else
affichelistetech22($codetechnicien,"codetechnicien",1);

C'est surement la que ca coince .. mais je pige pas
J'ai mis des echo dans mon form et lorsque je change de valeur dans ma liste ca sactualise bien mais la popup ne s'affiche pas.

Atomik29
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
Desole autant pour moi j'avais pas bien compris
Il fallait que je rajoute le form aussi dans ma fonction ....

Merci beaucoup huberdine et toi aussi malalam
A plus

Atomik29