Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

gerer une fenetre message

4 views
Skip to first unread message

J-F Portala

unread,
Mar 30, 2011, 8:42:34 AM3/30/11
to
Bonjour et encore merci pour votre aide
sur le sujet de la page un peu longue.
Je l'ai coupé en plusieurs morceaux.

J'ai un autre petit souci.
Lorsque je fais une requête mysql ou autre, je préviens l'utilisateur du
résultat avec une petite fenêtre supplémentaire qui s'affiche,
soit temporairement , soit attendant une validation.
Pour cela j'utilise dans mon code la fonction:
include_once('FonctMsg.php') ;
if ( $probleme )
AfficheMessage("L'élement $elt existe déjà !!!",ERREUR_TEMPO) ;
else
AfficheMessage("Requête réalisée avec succès !!!",INFOS_TEMPO) ;


Voici le fichier fonctMsg.php
<?php

define("INFOS_OK",0) ;
define("INFOS_TEMPO",1) ;
define("ERREUR_OK",2) ;
define("ERREUR_TEMPO",3) ;

function AfficheMessage($msg,$type=INFOS_OK,$tempo=2000,$loadpage = "")
{
if ( $type == INFOS_OK || $type == ERREUR_OK )
$tempo = 0 ; // permet de differencier la boite modale de la boite
temporisee
$page = addslashes("message.php?type=$type&message=$msg&tempo=$tempo") ;
print "\n<script type='text/javascript'>\n<!--\n" ;
print "window.open('".$page."','Message','width=280,height=150') ;";
print "\n-->\n</script>\n" ;
}

function RechargePage($page)
{
print "\n<script type='text/javascript'>\n<!--\n" ;
print 'location.replace("'.$page.'") ;';
print "\n-->\n</script>\n" ;
}
?>

qui appelle la page message.php suivante
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Message</title>
<link rel="stylesheet" type="text/css" href="css/msginfo.css">
<script type="text/javascript" src="js/fonctVerif.js"></script>
<script type="text/javascript">
<!--
function GestionMessage(tempo)
{
self.focus() ;
if ( tempo > 0 )
window.setTimeout('self.close()',tempo) ;
}
//-->
</script>
</head>
<body>
<?php
if ( isset($_REQUEST['type']) )
{
switch($_REQUEST['type'])
{
case INFOS_OK:
echo '<body class="infos" onblur="self.focus();"
OnLoad="GestionMessage('.$_REQUEST['tempo'].')">' ;
echo '<div
class="msginfo">',stripslashes($_REQUEST['message']),'</div>' ;
echo '<input type="button" value="Fermer"
onClick="window.close();"' ;
break ;
case INFOS_TEMPO:
echo '<body class="infos" onblur="self.focus();"
OnLoad="GestionMessage('.$_REQUEST['tempo'].')">' ;
echo '<div
class="msginfo">',stripslashes($_REQUEST['message']),'</div>' ;
break ;
case ERREUR_OK:
echo '<body class="erreur" onblur="self.focus();"
OnLoad="GestionMessage('.$_REQUEST['tempo'].')">' ;
echo '<div
class="msgerreur">',stripslashes($_REQUEST['message']),'</div>' ;
echo '<input type="button" value="Fermer"
onClick="window.close();"' ;
break ;
case ERREUR_TEMPO:
echo '<body class="erreur" onblur="self.focus();"
OnLoad="GestionMessage('.$_REQUEST['tempo'].')">' ;
echo '<div
class="msgerreur">',stripslashes($_REQUEST['message']),'</div>' ;
break ;
}
}
?>
</body>
</html>

Cela fonctionne avec IE mais avec firefox, la fenêtre apparait mais le
message est tronqué et la couleur de fond n'est pas utilisée (pas de CSS).
Est ce que c'est une coup de bol que cela fonctionne avec IE et c'est donc
normal que cela ne fonctionne pas avec FF.

Y a t il une méthode plus élégante ?

Merci de vos suggestions.

Jeff

Pascal Poncet

unread,
Mar 30, 2011, 9:24:30 AM3/30/11
to
Le 30/03/2011 14:42, J-F Portala a écrit :

> <body>
> <?php
> if ( isset($_REQUEST['type']) )
> {
> switch($_REQUEST['type'])
> {
> case INFOS_OK:
> echo '<body class="infos" onblur="self.focus();"

Attention, cela génère deux balises <body> !


--
Cordialement,
Pascal

J-F Portala

unread,
Mar 30, 2011, 9:32:46 AM3/30/11
to
C'est une erreur de ma part due à des essais
pour corriger le phénomène.
Dans la version de base, je n'ai que la balise <body class=...

Merci de ton aide

Jeff


Pascal Poncet

unread,
Mar 30, 2011, 10:03:18 AM3/30/11
to
Le 30/03/2011 15:32, J-F Portala a écrit :
> Dans la version de base, je n'ai que la balise<body class=...

Ok, donc le pb viendrait d'ailleurs.
J'ai mal vu, ou il nous manque le contenu de cette ressource :


<script type="text/javascript" src="js/fonctVerif.js"></script>

Au-delà, y a-t-il une version accessible en ligne ?
Sinon, peut-on avoir la copie du code généré côté client ? (les deux
fenêtres)


--
Cordialement,
Pascal

J-F Portala

unread,
Mar 30, 2011, 10:09:20 AM3/30/11
to
Désolé, mais c'est encore un reliquat de tests.

Jeff


J-F Portala

unread,
Mar 30, 2011, 10:31:53 AM3/30/11
to
Bonjour,
Je viens de m'apercevoir que le problème viendrait plutot du texte affiché.
J'utilise
Cr&eacute;ation ...
pour afficher "Création."

Je pensais que c'était un problème de temps d'affichage entre les 2
fenetres, mais en écrivant
directement Création, j'ai tout le message. Cela ne pose pas de problème à
IE.

Je m'étais trompé sur l'origine du problème.

Encore merci de ton aide et je suis désolé de t'avoir sollicité sur un faux
problème

Cordialement

Jeff


0 new messages