Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662

    Form che punta nella stessa popup (lightbox)

    Ciao a tutti... ho questo problema.
    Ho un form che appare in un box stile lightbox preso da quì.

    Dovrei fare in modo che la pagina dove punta il form (un invio mail con phpmailer) rimanga nello stesso box.

    Se il form si fosse trovato in una pagina normale avrei puntato il form nella stessa pagina con un controllo in GET del tipo:
    if(GET){include"send.php"}
    else
    {form}

    Ma trovandosi in una pseudo popup quando mi richiamo la stessa pagina mi apre send.php a pieno schermo.

    Sapreste dirmi come fare?
    Grazie
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    per renderlo più simile a una finestra di popup ti consiglio il .dialog di jquery-ui visto che è anche draggable, che puoi vedere QUI

    Discorso che vale sia per facebox che per dialog è il fatto che devi aggiornare i contenuti caricandoli tramite ajax, in facebox basta guardare gli esempi con "remote html" mentre con i .dialog si usa $.ajax o $.post oppure ancora .load.

  3. #3
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ma io utilizzo proprio quello ..."remote html".
    Faccio caricare nella pagina la popup con all'interno un'altra pagina.
    Quando premo invio nel form però, invece di reindirizzare la pagina all'interno della popup mi reindirizza la pagina nella finestra principale!

    Come posso fare?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Se ricarichi la pagina e rimandi i dati alla stessa, ajax o remote html che sia non ti serve a nulla.

    Semplicemente il contenuto della facebox deve essere inizializzato in maniera dinamica a seconda che siano settati i parametri passati dalla form.

    Ora io non so di preciso come funziona facebox ne mi interessa saperlo, ma supponendo che facebox prenda un blocco (div, span, ecc...) e lo metta in popup dovresti fare una cosa del tipo:


    Codice PHP:

    <div id='tofacebox'>
    <?php
        
    if(isset($_REQUEST[...])){
             
    //mostri i contenuti post submit
        
    }
        else{
            
    //mostri i soliti contenuti
        
    }
    ?>
    </div>

  5. #5
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Buongiorno (..mmazza quant'è tardi stamattina!)

    Cosa fa REQUEST?
    Quando scrivi "//mostri i soliti contenuti " intendevi il form?

    Mi faresti l'esempio concreto?

    La pagina del form è questa:
    Codice PHP:
    <div id="contactFormUsr">
        <form action="includes/contact_usr/send_mail_usr.php" method="POST">
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    Messaggio per
                </div>
                <div class="mmuuaUsrForm">
                    <?php echo $u_art['mmuua'?>
                </div>
            </div>
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    Il tuo nome
                </div>
                <input type="text" name="nomemitt" class="lineCFUsr" />
            </div>
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    La tua e-mail
                </div>
                <input type="text" name="mailmitt" class="lineCFUsr" />
            </div>
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    Messaggio
                </div>
                <textarea name="messmitt" class="txtaCFUsr"></textarea>
            </div>
            <input type="hidden" name="mailaddress" value="<?php echo $u_usr['email'?>" />
            <input type="hidden" name="username" value="<?php echo $usr ?>" />
            <div id="submitFormUsr">
                <input type="submit" name="invia" value="Invia" rel="facebox">
            </div>
        </form>
    </div>
    Mentre la pagina dove punta il form è questa:
    Codice PHP:
    <?php

        
    include_once('../../phpclass/class.phpmailer.php');
        
        
    $mail = new PHPMailer();
        
    $mail->CharSet 'UTF-8';
        
        
    $mail->From $_POST['mailmitt'];
        
    $mail->FromName $_POST['nomemitt'];
        
    $mail->Subject "Mail service";
        
    $html_body '
        <html>
            <body>
                Messaggio:

                '
    .$_POST['messmitt'].'
            </body>
        </html>
        '
    ;
        
        
    $mail->MsgHTML($html_body);
        
    $mail->AddAddress($_POST['mailaddress']);
        
    $mail->Send();

        echo 
    $_POST['mailmitt']."
    "
    ;
        echo 
    $_POST['nomemitt']."
    "
    ;
        echo 
    $_POST['messmitt']."
    "
    ;
        echo 
    $_POST['mailaddress'];
        
        
    header("Location: ../../?page=usr&u=".$_POST['username']);
        
    ?>
    Dovrei fare così?:
    Codice PHP:
    <div id='tofacebox'>
    <?php
        
    if(isset($_REQUEST[...])){


                 include_once(
    '../../phpclass/class.phpmailer.php');
        
        
    $mail = new PHPMailer();
        
    $mail->CharSet 'UTF-8';
        
        
    $mail->From $_POST['mailmitt'];
        
    $mail->FromName $_POST['nomemitt'];
        
    $mail->Subject "Mail service";
        
    $html_body '
        <html>
            <body>
                Messaggio:

                '
    .$_POST['messmitt'].'
            </body>
        </html>
        '
    ;
        
        
    $mail->MsgHTML($html_body);
        
    $mail->AddAddress($_POST['mailaddress']);
        
    $mail->Send();

        echo 
    $_POST['mailmitt']."
    "
    ;
        echo 
    $_POST['nomemitt']."
    "
    ;
        echo 
    $_POST['messmitt']."
    "
    ;
        echo 
    $_POST['mailaddress'];
        
        
    header("Location: ../../?page=usr&u=".$_POST['username']);


        }
        else{


            <
    div id="contactFormUsr">
        <
    form action="includes/contact_usr/send_mail_usr.php" method="POST">
            <
    div class="cfUsrBox">
                <
    div class="cfUsrTitle">
                    
    Messaggio per
                
    </div>
                <
    div class="mmuuaUsrForm">
                    <?
    php echo $u_art['mmuua'?>
                </div>
            </div>
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    Il tuo nome
                </div>
                <input type="text" name="nomemitt" class="lineCFUsr" />
            </div>
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    La tua e-mail
                </div>
                <input type="text" name="mailmitt" class="lineCFUsr" />
            </div>
            <div class="cfUsrBox">
                <div class="cfUsrTitle">
                    Messaggio
                </div>
                <textarea name="messmitt" class="txtaCFUsr"></textarea>
            </div>
            <input type="hidden" name="mailaddress" value="<?php echo $u_usr['email'?>" />
            <input type="hidden" name="username" value="<?php echo $usr ?>" />
            <div id="submitFormUsr">
                <input type="submit" name="invia" value="Invia" rel="facebox">
            </div>
        </form>
    </div>


        }
    ?>
    </div>
    E' giusto come ho fatto? ...ma in REQUEST cosa ci va?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    $_POST e $_GET sono array che contengono i dati passati rispettivamente con method post e get dai form.
    Dato che non sapevo quale method avessi utilizzato ho utilizzato $_REQUEST che funziona sia che mandi i dati con method post, sia con method get.

    Nella condizione dell' if devi verificare se sono settati gli elementi passati con post. Ad esempio nel tuo caso se è settato $_POST['mailmitt'] sai che hai fatto il submit del form.

    Codice PHP:
    if(isset( $_POST['mailmitt']))

    //al posto di if(isset( $_REQUEST[...])) 
    Ovviamente il form dovrà inviare i dati alla pagina stessa in cui ti trovi quindi l'attributo action potrebbe anche sparire dal form.

  7. #7
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Niente, ho provato come segue, ma non va...

    Codice PHP:
    <?php

        
    include_once('../../phpclass/class.phpmailer.php');

        if(isset(
    $_POST['nomemitt'])&&isset($_POST['mailmitt'])&&isset($_POST['messmitt'])){
            
            
    $mail = new PHPMailer();
            
    $mail->CharSet 'UTF-8';
            
            
    $mail->From $_POST['mailmitt'];
            
    $mail->FromName $_POST['nomemitt'];
            
    $mail->Subject "Mail service";
            
    $html_body '
            <html>
                <body>
                    Messaggio:

                    '
    .$_POST['messmitt'].'
                </body>
            </html>
            '
    ;
            
            
    $mail->MsgHTML($html_body);
            
    $mail->AddAddress($_POST['mailaddress']);
            
    $mail->Send();
        
            echo 
    $_POST['mailmitt']."
    "
    ;
            echo 
    $_POST['nomemitt']."
    "
    ;
            echo 
    $_POST['messmitt']."
    "
    ;
            echo 
    $_POST['mailaddress'];
            
            echo 
    "ok";
        }
        else
        {
            echo 
    "
            <div id=\"contactFormUsr\">
                <form method=\"POST\">
                    <div class=\"cfUsrBox\">
                        <div class=\"cfUsrTitle\">
                            Messaggio per
                        </div>
                        <div class=\"nnuuaUsrForm\">"
                            
    .$u_art['nnuuadarte'].
                        
    "</div>
                    </div>
                    <div class=\"cfUsrBox\">
                        <div class=\"cfUsrTitle\">
                            Il tuo nome
                        </div>
                        <input type=\"text\" name=\"nomemitt\" class=\"lineCFUsr\" />
                    </div>
                    <div class=\"cfUsrBox\">
                        <div class=\"cfUsrTitle\">
                            La tua e-mail
                        </div>
                        <input type=\"text\" name=\"mailmitt\" class=\"lineCFUsr\" />
                    </div>
                    <div class=\"cfUsrBox\">
                        <div class=\"cfUsrTitle\">
                            Messaggio
                        </div>
                        <textarea name=\"messmitt\" class=\"txtaCFUsr\"></textarea>
                    </div>
                    <input type=\"hidden\" name=\"mailaddress\" value=\""
    .$u_usr['email']."\" />
                    <input type=\"hidden\" name=\"username\" value=\""
    .$usr."\" />
                    <div id=\"submitFormUsr\">
                        <input type=\"submit\" name=\"invia\" value=\"Invia\">
                    </div>
                </form>
            </div>
            "
    ;
        }
    ?>
    Il risultato è che non viene inviata l'email e la popup sparisce senza che apparentemente accada nulla.
    Dove sbaglio?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.