no save
Assistance
Achat
News

Forum | webmastering
[PHP/Javascript] tester si popup ouverte
Phil_TSF, le jeu. 03 avr. 2008 à 11:09:02
Bonjour à toutes et à tous,

J'ai un petit soucis sur une appli web sur laquelle je travail en ce moment.

Elle se compose de la manière suivante :
Un index.php, dans lequel j'include un hautpage.php (bandeau) et un menu.php (menu principale de l'appli) ainsi que le fichier de conf pour les variables utilises tout le long de l'uitlisation.

Lors d'un clic sur une entrée de mon menu, je redirige vers l'index avec en get une variable me permettant, selon sa valeur, d'appeler les pages php qui vont bien.

Une des entrées de mon menu fonctionne différement, et ouvre une fenêtre popup permettant un traitement quelconque.

Ce traitement ne doit pas être appelé 2 fois. Donc j'interdit l'ouverture d'une autre popup lorsque une première est ouverte, ce avec un bout de code javascript, dans mon menu.php.

Cela fonctionne correctement, mais seulement tant que je reste sur la page courante. Des que je change de page en cliquant sur une autre entrée de mon menu, comme celui ci se recharger, alors le traitement permettant l'interdiction de l'ouverture d'une autre fenêtre popup est réinitialisé, ce qui autorise à nouveau une réouverture.

Voici des bouts de codes qui pourrait vous permettre de mieux comprendre le fonctionnement :

L'index

//////////////////////////////////////////////////////////////////
// index.php
<?php


//Fichier de configutation (login, mot de pase, etc ...)

require("conf/conf.php");

//Fichier contenant toutes les fonctions

require("fonction.php");

//Le bandeau en haut du site

include('hautpage.php');

//Le menu du site

include('menu.php');


//Le corps du site

$menu = $_GET[menu];

$menu_env = $_GET[menu_env];

$menu_form = $_GET[menu_form];

$menu_recep = $_GET[menu_recep];

$versionForm = $_GET[vform];



if($menu == recep)

{

include('reception/mailbox.php');

}

elseif($menu == email)

{

if($menu_env == benv)

{

include('envoi/historique.php');

}

elseif ($menu_env == benr)

{

include('envoi/boite_save.php');

}

elseif($menu_env == histvoir)

{

include('envoi/historique_voir.php');

}

elseif($menu_env == ok)

{

include('envoi/envoie_ok.php');

}

elseif($menu_env == verif)

{

include('envoi/envoie_verif.php');

}

else

{

include('envoi/envoie.php');

}

}
[...]

////////////////////////////////////////////////////////////////////////////////////
// Le menu.php
<script language = 'Javascript'>
var winpopup = null
function open_popup()
{
if ((!winpopup) || (winpopup.closed))
{
winpopup = window.open('connexion/connection.php','','width=900,height=190,menubar=0,statusbar=0,scrollbars=0,resizable=0,toolbar=0');
}
else if(winpopup.closed)
{
winpopup = null
}
else
{
alert("Une tentative de connexion est en cour. Merci de ne pas tenter d'en lancer une autre !")
}
}

</script>

<table width="870" align="center" border="0" cellpadding="0" cellspacing="0">

<tr>

<td noWrap background="image/tab.bg.dln.gif" width="100%" rowspan="2" align="center"></td>

<td rowspan="2" ><IMG src="image/tab.slide.hm.li.gif"></td>

<td bgColor="#336699" height=13></td>

<td bgcolor="#336699" width="100%" colspan="10"></td>

</tr>

<tr>

<td><IMG src="image/tab.separator.off.gif"></td>

<td noWrap background="image/tab.bg.off.gif">

   <A href="index.php?menu=recep" class="menu">Boite de réception</A>   

</td>

<td><IMG src="image/tab.separator.off.gif"></td>

<td noWrap background="image/tab.bg.off.gif">

   <A href="index.php?menu=email" class="menu">Message</A>   

</td>

<td><IMG src="image/tab.separator.off.gif"></td>

<td noWrap background="image/tab.bg.off.gif">

   <A href="index.php?menu=form" class="menu">Formulaire SAP</A>   

</td>

<td><IMG src="image/tab.separator.off.gif"></td>

<td noWrap background="image/tab.bg.off.gif">

   <A href="index.php?menu=mijo" class="menu">Mise à jour</A>   

</td>

<td><IMG src="image/tab.separator.off.gif"></td>

<td noWrap background="image/tab.bg.off.gif" align="center" valign="middle">

<div>   <a onclick="open_popup()" href="#" class=menu>Se connecter</a>   </div>

</td>

<td><IMG src="image/tab.separator.end.gif"></td>

</tr>

</table>



Et donc, mon problème est au niveau du menu connexion, et de l'index.

Auriez vous une idée de la façon de procéder pour que, quelque soit la page sur laquelle je suis aprés un clic sur mon menu, tant que la fenêtre popup est ouverte, il est interdit d'en rouvrir une autre aprés un clic sur le menu "Se connecter"?

N'hésitez pas à me dire si je ne suis pas assez clair!!

Merci d'avance pour votre participation!

Phil.Configuration: Linux
Firefox 2.0.0.13


Reivax962
avr. 08
Suivant
REPONSES
Reivax962
avr. 08
Phil_TSF
avr. 08
Reivax962
avr. 08
Phil_TSF
avr. 08
Reivax962
avr. 08
Phil_TSF
avr. 08
Phil_TSF
avr. 08
Version Web
Réalisé par RedShift
no save