Rechercher : dans
Par :

[php] fermeture de fenêtre (onunload)

Dernière réponse le 10 sep 2008 à 16:58:55 christboy, le 21 jun 2007 à 10:24:05 
 Signaler ce message aux modérateurs

Bonjour,
Dans mon code, ci-dessous, j'utilise la fonction onunload qui me sert a demander une confirmation de fermeture.
J'ai également sur ma page deux bouton : sauver et annuler.
Le but est que si on ne clic sur aucun bouton, onunload est apeller pour demander confirmation et si on clic sur un des deux boutons (sauver ou annuler) on quitte la page sans passer par onunload.
Est-ce possible et si oui comment ?
Merci de vos réponses.
Voici mon code avec mon idée qui ne marche pas.

  </HEAD>
<? $confirm_sortie = "oui"; ?>
<!-- -**********************************************bandeau du haut************************************************** -->
<table border='0' bordercolor='green' width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td height='28'></td>
    <td rowspan='2' valign='top' width='100%'>
      <table BORDER="0" bordercolor='yellow' CELLPADDING="0" CELLSPACING="0">
        <tr>
          <td>
            <table width='100%' CELLPADDING="0" CELLSPACING="0" background="images/bgbando.gif">
              <tr>
              <!-- bouton sauver -->
                <TD align="left">
                  <A href='#'  onclick=<? IF ($_GET['ajouter'] == 'oui' || strtolower($_SESSION['modificationDossier'])!='non') { ?>"if (confirm('Voulez-vous sauver et quitter ?')){ if(verifchp()) {  document.formulaire.submit(); document.window.unonload()="" ; <? $confirm_sortie="non";?> window.close();  } else { document.formulaire.action='dossieruser.php?ajouter=<? ECHO $_GET['ajouter'];?>&recharge=oui'; document.formulaire.submit(); document.window.unonload()= "" <? $confirm_sortie="non";?> window.close() }}"  <? } ?>
                    ; ; onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image0','','images/bouton/sauver2.gif',1)">
                    <IMG SRC="images/bouton/sauver.gif" name='Image0' border='0' ALT="" /></A></TD>
                <!-- bouton annuler -->
                <TD align="left">
                  <A href='#' onclick= " if (confirm('Voulez-vous vraiment annuler et quitter ?')){ <? $confirm_sortie="non";?> window.close()}"; onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','images/bouton/annuler2.gif',1)">
                    <IMG SRC="images/bouton/annuler.gif" name='Image1' border='0' ALT="" /></A></TD>
                <!-- bouton aide (désactivé) -->
                <td align="left" <? if(strtolower($_SESSION['UtilisationBDC'])=='non') echo "style='display:none'"; ?>
                  <a href="#" onclick="hauteur=screen.height-10;largeur=screen.width-10;window.open('bdcuser.php','','width='+largeur+',height='+hauteur+',top=0,left=0,menubar=no,directories=no, location=no, toolbar=no,scrollbars=yes,resizable=yes')"; onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','images/bouton/boutonbdc2.gif',1)">
                    <IMG SRC="images/bouton/boutonbdc.gif" name='Image3' border='0' ALT="" /></a></td>
                <!-- nom utilisateur -->
                <td align="left" width='100%'>
            <?
						$sql = "select * from tblUsersSite where Rédacteur like '$_SESSION[loginuser]'";
						$result = $db->query($sql);
						$row =& $result->fetchRow(DB_FETCHMODE_ASSOC);
						echo "<div class='bonjour'>Connexion : ".$row[majBDD('Prénom')]." ".$row[majBDD('Nom')]."</div>";
						//$db->disconnect();
            ?>
            </td>
              </tr>
            </table></td>
        </tr>
        <tr HEIGHT="0">
          <td>
            <TABLE BORDER="0" bordercolor='red' CELLPADDING="0" CELLSPACING="0" HEIGHT="0">
              <tr>
                <TD WIDTH="1000" HEIGHT="0">
                  <table width='100%' CELLPADDING="0" CELLSPACING="0">
                    <div class='barrefiltre'>
                  </table></td>
              </tr>
            </table></td>
        </tr>
      </table></td>
  </tr>
</table>
<!-- ********************************************** FIN bandeau du haut************************************************** -->
<BODY LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0" <?if($confirm_sortie=="oui"){?> onBeforeUnload=" if (verifchp()) { if (confirm('Voulez-vous enregistrer le dossier ?')) document.formulaire.submit(); } else {  if (confirm('Voulez-vous continuer Ó saisir l\'incident ?')) { document.formulaire.action='dossieruser.php?ajouter=<? echo $_GET['ajouter'];?>&recharge=oui'; document.formulaire.submit(); } }<?}?>">
    <form method="POST" target='<? echo $n_dossier; ?>' action='enreg_dossieruser.php?ajouter=<? echo $_GET['ajouter']; ?> ' name="formulaire">

      <table width="100%" height='100%' border='0' bordercolor='blue' cellpadding="0" cellspacing="0">
        <tr>
          <td background="images/bgband2.gif" valign=top>
            <!--********************************************** partie haute ********************************************************-->
            <table width="100%" border='0' bordercolor='blue' cellpadding="0" cellspacing="0" height=<? echo $_SESSION['TailleSaisieIncident']; ?>>
              <tr>
                <td valign=top>
                  <div style='position: relative'>
                    <input type='hidden' name='n_dossier' value='<? echo $n_dossier; ?>'>
Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « [php] fermeture de fenêtre (onunload) » dans :
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

christboy, le 21 jun 2007 à 10:27:42

Vu que dans ce site le code est illisible je vais vous mettre les trois choses importantes ^^':
-bouton sauver:

<A href='#'  onclick=<? IF ($_GET['ajouter'] == 'oui' || strtolower($_SESSION['modificationDossier'])!='non') { ?>"if (confirm('Voulez-vous sauver et quitter ?')){ if(verifchp()) {  document.formulaire.submit(); document.window.unonload()="" ; <? $confirm_sortie="non";?> window.close();  } else { document.formulaire.action='dossieruser.php?ajouter=<? ECHO $_GET['ajouter'];?>&recharge=oui'; document.formulaire.submit(); document.window.unonload()= "" <? $confirm_sortie="non";?> window.close() }}"  <? } ?>
                    ; ; onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image0','','images/bouton/sauver2.gif',1)">
                    <IMG SRC="images/bouton/sauver.gif" name='Image0' border='0' ALT="" /></A>



-bouton annuler :
<A href='#' onclick= " if (confirm('Voulez-vous vraiment annuler et quitter ?')){ <? $confirm_sortie="non";?> window.close()}"; onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','images/bouton/annuler2.gif',1)">
                    <IMG SRC="images/bouton/annuler.gif" name='Image1' border='0' ALT="" /></A>


et enfin la balise body qui ne fonction pas comme je voudrait ^^':
<BODY LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0" <?if($confirm_sortie=="oui"){?> onBeforeUnload=" if (verifchp()) { if (confirm('Voulez-vous enregistrer le dossier ?')) document.formulaire.submit(); } else {  if (confirm('Voulez-vous continuer Ó saisir l\'incident ?')) { document.formulaire.action='dossieruser.php?ajouter=<? echo $_GET['ajouter'];?>&recharge=oui'; document.formulaire.submit(); } }<?}?>">


NOTE: le $confirm_sortie est la variable servant a déterminer si on ou non il faut passer par la methode onunload.

Répondre à christboy

2

christboy, le 21 jun 2007 à 14:46:45
  • +2

Up je suis vraiment coincer ><

Répondre à christboy

3

 l_epais, le 10 sep 2008 à 16:58:55

Onbeforeunload
PS: N'oubliez pas de changer le statuts de vos post une fois­ qu'on a répondu entièrement a votre question

Répondre à l_epais