gerer une fenetre message

Le
J-F Portala
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 00,$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 "<script type='text/javascript'><!--" ;
print "window.open('".$page."','Message','width(0,height0') ;";
print "--></script>" ;
}

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

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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal Poncet
Le #23245431
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
Le #23245421
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
Le #23245601
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 :
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
Le #23245591
Désolé, mais c'est encore un reliquat de tests.

Jeff
J-F Portala
Le #23245641
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
Publicité
Poster une réponse
Anonyme