IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ne pas fermer une fenêtre DIV


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Ne pas fermer une fenêtre DIV
    J’étudie l’ouverture d’une fenêtre à partir d’une balise (div)… L’exemple étant en pièce jointe.
    Je l’ai obtenu à partir de cette adresse : Prototype Window.
    Dans le code de l’exemple ci-dessous, j’aimerais installer un formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      <body>     
            <script>Application.addTitle('', 'search')</script>     
            <div class="listing" style="display:none" id="search_codediv">
              <xmp id="search" class="listing" >
    var win = new Window({className: "dialog",  width:300, height:350, zIndex:10, resizable: true, title: "Texte du haut", showEffect:Effect.BlindDown, hideEffect: Effect.SwitchOff, draggable:true, wiredDrag: true})
     
    win.getContent().innerHTML= "<div style='padding:10px'><form name='form' id='form' method='post' action='#'><input id='result' value='0' name='result' type='text'/><input type='submit' value='Envoyer'></form></div>"
    win.setStatusBar("Texte du bas");
    win.showCenter();        
              </xmp>        
            </div>       
      </body>
    Je n’arrive pas à comprendre que le fait d’appuyer sur le bouton (Envoyer) ça ferme la fenêtre !
    Comment puis-je faire pour que la fenêtre ne se ferme pas ? (Je préfère la fermer indépendamment…)

    Besoin d’un expert pour résoudre cette difficulté…
    Comment empêcher la fermeture de la fenêtre, après avoir valider le bouton submit ?
    Bien cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    un click sur un bouton submit => on lance la page action du form =>chargement de page ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonsoir,

    En effet, c'est un rechargement de la page et non pas un div qui se referme.

    L'attribut appel la page contenant le formulaire. En le modifiant en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action = "javascript:void(0);"
    le submit ne lance pas l'envoi du formulaire mais est-ce l'objectif?

    Cordialement,
    Mahefasoa

  4. #4
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Mahefasoa :
    le submit ne lance pas l'envoi du formulaire mais est-ce l'objectif?
    L'objectif..!
    Je voudrais réaliser un moteur de recherche dans cette fenêtre qui s'ouvre par dessus la page.
    Etant réalisé à partir d'une balise (div) le but c'est que tant la recherche n'est pas terminée et bien la fenêtre reste ouverte...
    Je voudrais (imiter) laura sur le site d'edf bleu ciel
    Le fait de valider le formulaire la recherche fonctionne la fenêtre ne se feme pas...

    Merci..

  5. #5
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonsoir,

    Au fait, ce que nous tentons de t'expliquer, c'est que ce n'est pas ton Div qui s'est "fermé" mais c'était la page qui s'est rechargée à cause du paramètre action de ton formulaire qui est #.
    Et pour "empêcher" que la page ne se recharge pas, une des solutions est d'utiliser "javascript:void(0);" à la place de "#".

    Je ne sais pas si tu as compris.

    Maintenant, concernant l'objectif qui "imite" Laura, le DIV contenant Laura contient un formulaire et lorsqu'on "valide" (en cliquant sur un lien), cela lance un AJAX qui récupère les données et restitue les informations (sans rechargement, sans fermeture du DIV. Et d'ailleurs pour fermer, il faut cliquer sur ... fermer (X).

    Une solution possible pour toi est la suivante:
    1. l'attribut "action" de ton formulaire = "javascript:void(0);";
    2. à l'événement on submit de ton formulaire, tu vas exécuter un script PHP en AJAX;
    3. le résultat de cet AJAX sera affiché dans le DIV (ou pas, selon ton choix).

    Cordialement,
    Mahefasoa

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit ="return false"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Merci de votre aide...
    Dans mon premier message, dans le script à la ligne 8 et dans la pièce jointe c'est un exemple.
    Voici ma ligne complète et vos annotations.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    "win.setStatusBar("<?php echo'<fieldset class=\"search\"><form style=\"margin-left:10px\" id=\"form1\" action=\"'; ?><?php echo htmlentities($_SERVER['PHP_SELF']); ?><?php echo'\" method=\"post\" enctype=\"application/x-www-form-urlencoded\"><fieldset class=\"search\"><input style=\"float:right\" name=\"requete\" type=\"text\" class=\"search_submit\" value=\"Recherche rapide\"  onfocus=\"if (this.value==\'Recherche rapide\') this.value=\'\';\" onblur=\"if(this.value==\'\') this.value=\'Recherche rapide\';\" size=\"24\"><input style=\"float:left\" class=\"search_ok\" type=\"submit\" id=\"submit\" name=\"submit\" value=\"ok\" onclick=\"javascript:void(0)\" onsubmit=\"return false\"></form></fieldset>'; ?>");
    Lorsque je valide (ok), la fenêtre se ferme.... hélas !
    J'ouvre à nouveau la fenêtre, le résultat de la recherche apparaît...
    Donc, la recherche avec php : pas de soucis.....

    Par contre je souhaiterais que la fenêtre reste apparente…

    Merci

  8. #8
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonsoir,

    Ce n'est pas la fenêtre qui se ferme mais c'est ta page qui se recharge car tu as spécifié un truc dans l'attribut action de ton formulaire, un truc autre que "javascript:void(0);" ou sinon, il te manque l'événement onsubmit proposé par Spacefrog.

    Cordialement,
    Mahefasoa

  9. #9
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir Mahefasoa,

    Effectivement je viens de tester ave ce bout de code et ça fonctionne ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style='padding:10px'><form name='form' id='form' method='post' action='javascript:void(0);'><input id='result' value='0' name='result' type='text'/><input type='submit' value='Envoyer' onsubmit='return false'></form></div>
    Sachant que j'utilise du php comme action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo htmlentities($_SERVER['PHP_SELF']); ?>
    Comment rajouter la ligne en supplément ?
    Merci...

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='submit' value='Envoyer' onsubmit='return false'>

    onsubmit c'est dans la balise form !!!

    dans la balise input type submit il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="return false;"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour SpaceFrog,

    Je viens de rectifier ce que tu me dis...
    Merci..

    La page ne se recharge plus, effectivement, mais plus rien ne se passe..
    Le moteur de recherche ne cherche plus...
    Puisque (onsubmit="return false") alors il ne retourne rien...
    Enfin je pense..
    Je ne sait plus comment faire..

    De plus, dans (action ="") je ne peux pas ajouter javascript:void(0) puisque j'ai du php et qui plus est avec (htmlentities)....

    Que faire..

  12. #12
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonjour,

    Plusieurs alternatives existent:
    1. garder ce qu'il y a dans action et en plus de celui qui est contenu dans onsubmit (donc avant return false), appeler une fonction JS qui va utiliser AJAX via lequel on traite le formulaire;
    2. modifier le contenu de action, on met javascript:void(0); et dans l'événement submit, on appelle une fonction JS qui va traiter le formulaire et en fonction du résultat, on ajoute un return false ou on ferme la fenêtre ou on affiche le résultat...

    etc.

    Cordialement,
    Mahefasoa

  13. #13
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir,

    Merci beaucoup à vous pour votre aide…

    Je viens de me procurer un livre (Ajax, jQuery et PHP) et je pense me tourner vers Ajax.
    Je vais de ce pas lire le livre…

    Cette affaire est résolu pour l'instant.... à suivre.

    Bien cordialement

  14. #14
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonjour,

    C'est super alors, mais voici un petit coup de pouce dans ce cas.

    1. Côté formulaire:
    a. attribut action = "javascript:void(0);";
    b. pas de onsubmit visible dans la balise formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form style="margin-left:10px" id="form1" action="javascript:void(0);" method="post" enctype="application/x-www-form-urlencoded">
    2. Côté JS:
    a. mettre en place un contrôleur d'événement après la création du formulaire;
    b. collecter les données et les passer à Ajax pour les traiter puis afficher un résultat ou faire une action via jQuery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $("form#form1).submit(function(){    //quand on submit le formulaire dont l'ID est form1
        var donnees = $(this).serialize();    //on collecte tous les champs du formulaire en associant nom de champ et valeur de champ sous la forme champ1=valeur1&champ2=valeur2
        $.ajax({
            url: "le fichier PHP qui va traiter les données",
            data: donnees,
            type: "POST",
            success: function(resultat){    //si l'ajax a bien réussi
                //faire une action selon le résultat
                //resultat est ce que le fichier PHP afficher en echo ou print
            },
            error: function(){    //si erreur rencontrée
                alert('Erreur!');
            }
        });
    });
    3. Côté PHP:
    a. le fichier va recevoir les données envoyées par POST par l'Ajax;
    b. il va faire le traitement nécessaire;
    c. il doit afficher des echo ou print pour que cela puisse être "recueillis" par resultat de success: function(resultat){}

    En espérant d'avoir pu te donner un modeste coup de pouce dans ta quête.

    Bon dimanche!
    Mahefasoa

  15. #15
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Merci beaucoup, maintenant je suis sur la bonne voie…
    A ce que je vois le décalage horaire a eu une influence sur toi… 4h36 humm…
    Bon dimanche à toi aussi…

    Cordialement
    Bruno.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fermer une fenêtre et ne pas quitter l'application
    Par win_ubuntu dans le forum JavaFX
    Réponses: 3
    Dernier message: 28/10/2014, 08h48
  2. Fermer une fenêtre et pas toutes les fenêtres ouvertes
    Par Sinakhine dans le forum Général Java
    Réponses: 4
    Dernier message: 29/10/2012, 13h06
  3. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  4. Je n'arrive pas à détruire une fenêtre
    Par CORREGE Frédéric dans le forum MFC
    Réponses: 6
    Dernier message: 22/02/2004, 20h28
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo