Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Aprire popup con Javascript da script PHP

    Buonasera, premetto che sono un principiante e che ho cercato in lungo ed in largo prima di chiedere aiuto sul forum. Ho inserito sul mio sito un piccolo form di registrazione alla newsletter contenente due campi, "Nome" ed "e-mail". Ho collegato l'html ad uno script PHP che invia i valori inseriti ad un indirizzo email. Successivamente viene caricata nella solita finestra una pagina di ringraziamento:

    Codice PHP:
    header ("Location: $pagina_grazie"); 
    A seconda che il modulo venga compilato correttamente o meno, è previsto il caricamento delle rispettive pagine:

    Codice PHP:
    // invio e-mail
    // Header Mail
    $headmail.="From: $nome_mittente <$nome_mittente>\n";
    $headmail.="Return-Path: $nome_mittente\n";
    $headmail.="User-Agent: Php Mail Function\n";
    $headmail.="X-Accept-Language: en-us, en\n";
    $headmail.="MIME-Version: 1.0\n";
    $headmail.="X-Priority: 1 (Highest)\n";
    $headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
    $headmail.="Content-Transfer-Encoding: 7bit\n";

    ini_set('sendmail_from'"$destinatario");
    mail("$destinatario""$oggetto_email""$corpo""$headmail");

                    
    header ("Location: $pagina_grazie");

                                    } else {

                    
    header ("Location: $pagina_error_email");

                            }

                        } else {

                        
                    
    header ("Location: $pagina_error_empty");

                        }

    ?> 
    Invece del caricamento sulla solita pagina, vorrei che le rispettive pagine venissero visualizzate come popup. Ho appreso che allo scopo devo inserire un codice Javascript del tipo:

    codice:
    ?>
    <script type="text/javascript">
    <!--
    window.open(www.paginadiconferma.it);
    //-->
    </script>
    <?php
    Il mio problema è che non riesco a capire dove e come inserire lo script all'interno del PHP. Credo che dovrei mettere, sempre in Javascript, per l'apertura di ogni finestra una condizione "if ($certa_condizione)".

    Ringrazio per i consigli che mi darete.

  2. #2
    sposta il problema da php a javascript; quindi

    1. crei il form html e ci associ al submit una funzione javascript
    2. la funzione js valida i dati e dice se ci sono errori
    3. se tutto ok fail submit ( metodo migliore usare ajax)
    4. senza inviare popup (poco eleganti) scrivi una notifica nel form stesso


    Penso che in rete puoi trovare codice già fatto al riguardo.
    Glue Labs
    Makes extraordinary things
    www.glue-labs.com/

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Aprire popup con Javascript da script PHP

    Codice PHP:
    mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");

                    $nomePagina = $pagina_grazie;

                                    } else {

                    $nomePagina = $pagina_error_email;

                            }

                        } else {

                        
                    $nomePagina =  $pagina_error_empty;

                        }

    ?>
    <script type="text/javascript">
    <!--
    window.open('<?php echo $nomePagina?>');
    //-->
    </script>
    <?php

  4. #4
    Ringrazio glue-labs e luca200 per l'aiuto.

    luca200: ho aggiunto il codice che mi hai suggerito, ma lo script continua ad aprire le finestre nella solita pagina, senza generare pop-up.

    glue-labs: credo che proverò ad utilizzare uno script totalmente in Javascript anche se onestamente il php mi piaceva di più.

  5. #5
    Ricorda comunque che le finestre pop-up sono il male e che i browser permettono anche di impedirne l'apertura.

  6. #6
    Ma non potresti usare una dialog invece di una popup, che con ajax ed in particolare con il framework jquery potresti sbizzarrirti a fare qualcosa di carino?

  7. #7
    k.b, mi hai fatto riflettere ed hai perfettamente ragione. Ho modificato lo script html inserendo alcune righe javascript che mi generano alerts in caso non vengano compilati i campi "nome" e/o "email".

    codice:
    <title>Modulo per email</title>
    <script language="javascript" type="text/javascript">
     <!--
      function Modulo() {
    
            if ((document.modulo1.nome.value == "")) {
               alert("Il campo Nome è obbligatorio");
               document.modulo.nome.focus();
               return false;
            }
    
            else if ((document.modulo1.email.value == "")) {
              alert("Il campo Email è obbligatorio");
              document.modulo.email.focus();
              return false;
            }
    
         
            else {
               document.modulo1.action = "mailto.php";
               document.modulo1.submit();
            }
      }
     //-->
    </script>
    </head>
    
    				    <form name="modulo1" method="post" action="mailto.php"> 
    					<p class="Indented1 NoBreakAfter">Enter your name</p>
    					<p class="Indented1 NoBreakBefore"><input type="text" name="nome" class="Width150"></p>
    					<p class="Indented1 NoBreakAfter">Enter your e-mail</p>
    					<p class="Indented1 NoBreakBeforeAfter"><input type="text" name="email" class="Width150"></p>
    					<p align="right" class="NoBreakBefore"><input type="button" value="Invia" onClick="Modulo()"> <input type="reset" value="Reset">
    				</form>							
    			[img]images/Bianco.gif[/img]
    		</td>
    <table cellpadding="0" cellspacing="0" class="Bottom" align="center" style="height: 0px; width: 733px">
    	<tr>
    		<td>[img]images/BottomCol1.gif[/img]</td>
    	</tr>
    </table>
    Il problema rimane sempre lo script php, tagliato e cucito, nel quale non riesco ad inserire un semplice messaggio di alert "modulo inviato con successo"

    Codice PHP:
    <?php
    //varie info per email
    $oggi date("j F Y G:i");
    $sito "http://www.nomesito.it";
    $ip "$_SERVER[REMOTE_ADDR]";
    $browser "$_SERVER[HTTP_USER_AGENT]";
    $to "massimo.riani@virgilio.it";
    $soggetto "Modulo da $sito";

    if(
    trim($_POST['nome']) == "" OR trim($_POST['email']) == "") {
    echo 
    "<font color=\"#FF0000\" face=\"verdana\" size=\"2\">[b]Tutti i campi sono obbligatori[/b]</font>";

    } else {

    $body "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email]";

    mail("$to","$soggetto","$body");
    ?>
    <html>
    <head>
    <title>Mail inviata</title>
    </head>
    <body bgcolor="#ffffff">
    <div align="center">
    <font size="2" face="verdana">[b]Modulo inviato con successo! Grazie.[/b]</font>



    </div>
    </body>
    </html>
    <?php
    }
    ?>
    In questa maniera mi carica ed apre una nuova pagina con scritto appunto "Modulo inviato con successo! Grazie." Ho provato ad inserire un messaggio di alert utilizzando Javascript, ma niente da fare.

  8. #8
    Originariamente inviato da mymovida.net
    Ma non potresti usare una dialog invece di una popup, che con ajax ed in particolare con il framework jquery potresti sbizzarrirti a fare qualcosa di carino?
    Sto studiando sulle tue parole, il problema è che sono ancora un principiante

  9. #9
    ok, però ricordati che stai sul sito html.it, qui è ricco di risorse e di informazioni che puoi trovare con semplicità......
    Ad esempio:
    http://javascript.html.it/guide/lezione/4599/dialog/
    se il framework jquery (che ti consiglio caldamente di imparare in quanto è veramente molto utile),ancora non lo conosci bene, vai nella guida presente in questo sito.
    Inoltre se cerchi con google dialog jquery, non hai che da scegliere.
    E ti dirò di più se cerchi plugins jquery troverai una marea di risorse che ti mostreranno quanto è potente questo framework.

  10. #10
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Codice PHP:
    mail("$destinatario""$oggetto_email""$corpo""$headmail"); 
    I doppi apici non sono necessari, anzi.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

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 © 2024 vBulletin Solutions, Inc. All rights reserved.