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

jQuery Discussion :

Chargement de la même page dans une popup


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut Chargement de la même page dans une popup
    Bonjour à tous !

    Je travaille sur un site web en langage ASP.NET. Mais ma question est essentiellement sur du Javascript et de l'Ajax.

    En fait, sur une page de mon site, quand je clique sur un lien quelconque, une popup s'affiche, voici le lien en question et le code Javascript qui me permet de créer cette popup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <a class="forgot" id="opener" href="">Mot de passe perdu</a>
     
        <script type="text/javascript">
            $(document).ready(function() {
                $("#opener").click(function() {
                    $('#lostpassword').load("~/MyPanel/Special-pages/Lost-password.aspx");
                    $('#lostpassword').dialog({ title: "Récupération du mot de passe", modal: true, height: 'auto', show: 'slide' });
                    return false;
                });
            });
        </script>
    En fait, c'est grâce à l'id du lien que je peux afficher cette popup. "lostpassword" correspond à l'id d'un div qui est présent sur la même page (il n'y a pas de contenu à l'intérieur). Et dans ce div, je charge la page Lost password (.load("~/MyPanel/Special-pages/Lost-password.aspx") ce qui fonctionne.

    Pour que vous voyez mieux, j'ai mis la popup en pièce jointe.

    Mon problème survient quand je clique sur le bouton "Envoyer", la page se charge (ce qui est normal) mais elle ne se charge pas dans la popup (ça charge la page en intégralité). En fait, quand on clique sur le bouton, ça envoie juste un message de confirmation.

    Maintenant est-ce possible qu'une fois la page chargée, elle s'affiche dans la même popup ? J'ai entendu dire que je pouvais faire ça avec Ajax...

    Merci d'avance de vos réponses.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 220
    Par défaut
    Peux-tu poster le code du popup?

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Je l'ai posté au-dessus : y a le lien pour afficher la popup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="forgot" id="opener" href="">Mot de passe perdu</a>
    Et le code Javascript de la popup elle-même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
            $(document).ready(function() {
                $("#opener").click(function() {
                    $('#lostpassword').load("~/MyPanel/Special-pages/Lost-password.aspx");
                    $('#lostpassword').dialog({ title: "Récupération du mot de passe", modal: true, height: 'auto', show: 'slide' });
                    return false;
                });
            });
        </script>

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Je pense que gael désire le code de Lost-password.aspx.
    Le code où il y a le bouton Envoyer.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Ah d'accord, voici le code (.aspx) :

    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
    17
        <cms:QueryRepeater ID="QueryRepeater1" runat="server" QueryName="tns.mypanel_email.selectmail1"
            TransformationName="tns.mypanel_email.preview" Visible="false">
        </cms:QueryRepeater>
        <br />
        <div id="form" runat="server">
            <asp:Label ID="Label1" runat="server" Text="Veuillez saisir votre e-mail :"></asp:Label><br />
            <br />
            <asp:TextBox ID="TBEmail" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"></asp:RequiredFieldValidator>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"></asp:RegularExpressionValidator>
            <br />
            <br />
            <asp:Button ID="BSend" runat="server" Text="Envoyer" OnClick="BSend_Click" />
            <br />
            <br />
        </div>
        <asp:Label ID="LCheck" runat="server" Visible="false"></asp:Label>
    Le composant "QueryRepeater" me sert pour avoir le contenu du mail à envoyer.

    Et voici le code behind (.aspx.cs) :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
        //PASSWORD SENDING
        protected void BSend_Click(object sender, EventArgs e)
        {
            if (TBEmail.Text != "")
            {
                form.Visible = false;
                LCheck.Visible = true;
     
                //GET EMAIL CONTENT
                mypanelmember member = getMyPanelInformation.getPanelMemberinfo(TBEmail.Text);
     
                //CHECKING EMAIL
                if (member != null)
                {
                    HtmlGenericControl controlEmailSubject = new HtmlGenericControl();
                    HtmlGenericControl controlEmailText = new HtmlGenericControl();
                    Control divEmailSubject = new Control();
                    Control divEmailText = new Control();
     
                    foreach (Control ctrl in QueryRepeater1.Controls)
                    {
                        divEmailSubject = FindControlRecursive(ctrl, "EmailSubject");
                        divEmailText = FindControlRecursive(ctrl, "EmailText");
                    }
     
                    controlEmailSubject = (HtmlGenericControl)divEmailSubject;
                    controlEmailText = (HtmlGenericControl)divEmailText;
                    controlEmailText.InnerHtml = controlEmailText.InnerHtml.Replace("[FIRSTNAME]", member.Firstname);
                    controlEmailText.InnerHtml = controlEmailText.InnerHtml.Replace("[PASSWORD]", member.Password);
     
                    //GET EMAIL DATA
                    email email = new email();
                    email.To = TBEmail.Text;
                    email.Subject = controlEmailSubject.InnerHtml;
                    email.Body = controlEmailText.InnerHtml;
     
                    hideControls();
     
                    if (SendEmail.send(email) != -1)
                    {
                        LCheck.Text = "Votre mot de passe a été envoyé sur votre adresse e-mail, attention il a pu être envoyé dans le courrier indésirable.";
                    }
     
                    else
                    {
                        LCheck.Text = "Message non envoyé.";
                    }
     
                }
                else
                {
                    // MESSAGE EMAIL INVALIDE ; NON-EXISTENTE
                }
            }
        }
    La méthode permet tout simplement d'envoyer un mail à l'adresse saisie. La fonction "FindControlRecursive" permet de récupérer les infos du mail (grâce à QueryRepeater).

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 59
    Par défaut
    Sinon, pour la question du chargement de contenu ajax dans une popup en js va voir du côté du plugin 'Dialog' de jquery-ui :

    http://jqueryui.com/demos/dialog/#modal-form

    c fait exactement pour ce que tu cherches à faire. La version qui t'intéresse est modal-form.

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

Discussions similaires

  1. Structure d'une page dans une popup
    Par Invité dans le forum jQuery
    Réponses: 3
    Dernier message: 07/08/2013, 10h58
  2. Réponses: 3
    Dernier message: 07/04/2008, 14h51
  3. activer une fonction d'une page contenue dans une popup.
    Par manutudescends dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/08/2006, 14h32
  4. Rechagement de page vers ancre dans une popup
    Par cyber6ou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/11/2005, 12h38
  5. Refresh de page initiale après saisie dans une popup
    Par muppetshow dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/03/2005, 12h21

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