• User

    Messaggio popup da contact form

    Ciao a tutti, ho un form in php e vorrei che all'invio del modulo invece che restituirmi un messaggio in un'altra pagina tramite il comando echo, lo script mi restituisse un avviso popup con un solo pulsante di OK.

    Come faccio? potete aiutarmi? Ecco il codice:

    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />.   
     
    <?php 
     
    // campi obbligatori 
    if ((trim($_POST['name']) != "") && (trim($_POST['surname']) != "") && (trim($_POST['email']) != "") && (trim($_POST['tel']) != "") && (trim($_POST['message']) != "")) { 
     
    // destinatario dell'e-mail 
    $to = "      \n indirizzo email destinatario "; 
     
    $headers = "From: " . $_POST['email'] . "\n"; 
     
    // oggetto dell' e-mail 
    $subject = "Contatto dal sito"; 
     
    // corpo messaggio 
    $body = "Hai ricevuto un messaggio dal sito con le seguenti informazioni:\n\n"; 
     
    $body .= "Nome: " . trim(stripslashes($_POST["name"])) . "\n"; //nome del mittente 
    $body .= "Cognome: " . trim(stripslashes($_POST["surname"])) . "\n"; //cognome del mittente 
    $body .= "E-mail: " . trim(stripslashes($_POST["email"])) . "\n"; //indirizzo e-mail del mittente 
    $body .= "Telefono: " . trim(stripslashes($_POST["tel"])) . "\n"; //numero del mittente 
    $body .= "Sito web: " . trim(stripslashes($_POST["website"])) . "\n"; //sito del mittente 
    $body .= "Messaggio: " . trim(stripslashes($_POST["message"])) . "\n"; //contenuto del messaggio 
     
     
    // invio mail 
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE... 
     
    echo "E-mail inviata correttamente. Grazie per avermi contattata!";  
     
    } else {// altrimenti 
     
    echo "E' necessario compilare tutti i campi prima di inviare."; 
     
    } 
     
    ?> 
     
    
    

  • User

    un box di alert non un popup....scusate..


  • ModSenior

    Quindi un box alert che effettivamete, mostrando un resoconto delle informazioni, ti dica se vuoi continuare a inviare le informazioni o no?


  • User

    No, un box di alert che mi scriva che il messaggio è stato inviato o che ci sono errori nella compilazione del form.


  • ModSenior

    Il controllo degli errori io lo farei a priori, prima di inviare il form, perchè gia prima sai se il form è compilato correttamente.


  • User

    Non sono capace purtroppo, infatti ho inserito gli asterischi che indicano quale dei campi è obbligatorio.. mi accontento di un form semplice come quello che ho fatto ma invece di darmi il messaggio in una pagina bianca, vorrei che me lo desse in un alert box. tutto qui..


  • ModSenior

    Prova a vedere se ti va bene questo codice.

    C'è un pò di tutto, un controllo Javascript prima dell'invio dati, e del php che ti dice se va tutto bene.

    [PHP]
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
    <style type="text/css">
    html,body
    {
    margin:0px;
    padding:0px;
    background:#AAD4FF;
    }
    .sposta
    {
    margin:10px;
    }
    </style>
    <script type="text/javascript">
    function controlla()
    {
    var cognome=document.getElementById("cognome");
    var valoreCognome=cognome.value;
    if(valoreCognome=="")
    {
    alert("Il cognome è obbligatorio, compilarlo prima di proseguire!");
    }
    else
    {
    document.myform.submit();
    }
    }
    </script>
    </head>
    <body>
    <?php
    $valoreNome=$_POST['nome'];
    $valoreCognome=$_POST['cognome'];
    if($valoreNome==""&&$valoreCognome=="")
    {
    ?>
    <form name="myform" id="myform" action="index.php" method="post">
    <div><input class="sposta" id="nome" name="nome" /><span class="sposta">Nome</span></div>
    <div><input class="sposta" id="cognome" name="cognome" /><span class="sposta">Cognome *</span></div>
    <div><input class="sposta" type="button" value="INVIO" onclick="controlla()"/></div>
    </form>
    <?php
    }
    else
    {
    echo "Form inviato con successo!";
    }
    ?>
    </body>
    </html>
    [/PHP]


  • User

    Non mi sono spiegato bene.. a me serve utilizzare il seguente codice ma con la dovuta modifica per adattarlo alla mia esigenza.
    Ti incollo prima il codice html e poi il php:

    [html]

    <form action="mail.php" method="post" id="modulo">

    <div class="form_row">
    <label>Nome:</label>
    <input name="name" type="text" id="name" class="contact_input"/>
    </div>

    <div class="form_row">
    <label>Cognome:</label>
    <input name="surname" type="text" id="surname" class="contact_input"/>
    </div>

    <div class="form_row">
    <label>E-mail:</label>
    <input name="email" type="text" id="email" class="contact_input"/>
    </div>

    <div class="form_row">
    <label>Telefono:</label>
    <input name="tel" type="text" id="tel" class="contact_input"/>
    </div>

    <div class="form_row">
    <label>Messaggio:</label>
    <textarea name="message" cols="30" rows="5" id="message" class="contact_textarea"></textarea>
    </div>

    <div class="form_row">
    <input type="submit" name="submit" id="submit" class="contact_submit" value="Invia" />
    </div>

    </form>
    [/html]

    [php]
    <?php

    // campi obbligatori
    if ((trim($_POST['name']) != "") && (trim($_POST['surname']) != "") && (trim($_POST['email']) != "") && (trim($_POST['tel']) != "") && (trim($_POST['message']) != "")) {

    // destinatario dell'e-mail
    $to = " \n indirizzo email destinatario ";

    $headers = "From: " . $_POST['email'] . "\n";

    // oggetto dell' e-mail
    $subject = "Contatto dal sito";

    // corpo messaggio
    $body = "Hai ricevuto un messaggio dal sito con le seguenti informazioni:\n\n";

    $body .= "Nome: " . trim(stripslashes($_POST["name"])) . "\n"; //nome del mittente
    $body .= "Cognome: " . trim(stripslashes($_POST["surname"])) . "\n"; //cognome del mittente
    $body .= "E-mail: " . trim(stripslashes($_POST["email"])) . "\n"; //indirizzo e-mail del mittente
    $body .= "Telefono: " . trim(stripslashes($_POST["tel"])) . "\n"; //numero del mittente
    $body .= "Sito web: " . trim(stripslashes($_POST["website"])) . "\n"; //sito del mittente
    $body .= "Messaggio: " . trim(stripslashes($_POST["message"])) . "\n"; //contenuto del messaggio

    // invio mail
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "E-mail inviata correttamente. Grazie per avermi contattata!";

    } else {// altrimenti

    echo "E' necessario compilare tutti i campi prima di inviare.";

    }

    ?>
    [/php]