Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema Javascript

  1. #1

    Problema Javascript

    Ciao a tutti!

    Ho un problema: Ho una pagina html nella quale c'è un form x mandare un'e-mail con allegato. Ho inserito uno script PHP che effettua un controllo dei campi lasciati vuoti e dà un messaggio se non sono compilati quelli obbligatori (tutti tranne l'allegato). Fin qui funziona. Dal momento in cui ho voluto aggiungere allo script una funzione che mi disabilita il pulsante di invio quando tutto è stato compilato sembra che non mi invia il form alla pagina php xkè diventa la pagina bianca. Ora, io conosco il php e non mastico molto bene javascript. Penso che l'errore sia nella prima pagina e nella seconda funzione javascript inserita anche xkè senza di quella il programma funziona benissimo.

    Questa è la pagina contattaci.html (posto solo script e form)

    <script SCRIPT type="text/javascript">
    function checkrequired(which){
    var pass=true
    if (document.images){
    for (i=0;i<which.length;i++){
    var tempobj=which.elements[i]
    if (tempobj.name.substring(0,8)=="required"){
    if (((tempobj.type=="text"||tempobj.type=="textarea") &&tempobj.value=='')||(tempobj.type.toString().cha rAt(0)=="s"&&tempobj.selectedIndex==-1)){
    pass=false
    break
    }}}}
    if (!pass){
    alert("Non hai compilato correttamente il form. Alcune informazioni non sono state inserite. Clicca su OK e verifica l'errore")
    document.form1.invio.disabled = false
    document.form1.reset.disabled = false
    return false
    }
    else
    document.form1.invio.disabled = true
    document.form1.reset.disabled = true
    return true
    }
    </script>
    </head>

    <body>
    <table align="center" cellpadding="8" cellspacing="0">
    <form enctype="multipart/form-data" name="form1" action="contatta.php" method="POST"
    onSubmit="return checkrequired(this)">
    <tr>
    <td width="233" valign="top">
    <div align="right" class="Stile1">Nome:</div></td>
    <td width="376" valign="top"><input type="text" name="requiredname" size="30"></td>
    </tr>
    <tr>
    <td valign="top"><div align="right" class="Stile1">Cognome:</div></td>
    <td valign="top"><input type="text" name="requiredsurname" size="30"></td>
    </tr>
    <tr>
    <td valign="top"><div align="right" class="Stile1">E-mail:</div></td>
    <td valign="top"><input type="text" name="requiredemail" size="30"></td>
    </tr>
    <tr>
    <td colspan="2" valign="top"> <div align="center" class="Stile1">Messaggio:</div></td>
    </tr>
    <tr>
    <td colspan="2" valign="top">
    <div align="center"><textarea cols="70" rows="15" name="requiredmessaggio"></textarea></div></td>
    </tr>
    <tr>
    <td colspan="2" valign="top">
    <div align="center"><span class="Stile1">File da allegare:</span>
    <input type="hidden" name="MAX_FILE_SIZE" value="750000000" />
    <input name="file1" type="file" size="50" />
    </div>
    <tr>
    <td colspan="2" valign="top">
    <div align="center"><input type="submit" value="INVIA" name="invio" />
    <input type="reset" value="CANCELLA" name="reset" />
    </div>
    </form>
    </table>

    Mentre questa la pagina contatta.php Ma ripeto: penso che il problema sia del secondo javascript di contattaci.html

    <?php
    error_reporting(2047);
    if (isset($_POST["invio"])) {
    $percorso = "public/";
    $file = $_FILES['file1']['name'];
    /*Se non è stato allegato un file...*/
    if ($file == "") {
    //Recupero i dati inseriti dall'utente.
    $nome = $_POST['requiredname'];
    $cognome = $_POST['requiredsurname'];
    $email = $_POST['requiredemail'];
    $messaggio = $_POST['requiredmessaggio'];
    $messaggio = stripslashes($messaggio);

    echo "<h2>Grazie per averci contattato.
    Questi sono i dati che hai inserito:</h2>

    ";
    echo "Nome: $nome
    Cognome: $cognome
    Email: $email";
    echo "

    Messaggio:<p class=\"testi1\">
    <FORM>
    <textarea cols=\"70\" rows=\"15\" READONLY>$messaggio</textarea>
    </FORM></p>";

    }

    /*Se invece è stato allegato un file... */
    //copio il file nella cartella 'public' e faccio come sopra x i dati.
    else {if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {

    //Recupero i dati inseriti dall'utente.
    $nome = $_POST['requiredname'];
    $cognome = $_POST['requiredsurname'];
    $email = $_POST['requiredemail'];
    $messaggio = $_POST['requiredmessaggio'];
    $messaggio = stripslashes($messaggio);

    echo "<h2>Grazie per averci contattato.
    Questi sono i dati che hai inserito:</h2>

    ";
    echo "Nome: $nome
    Cognome: $cognome
    Email: $email";
    echo "

    Messaggio:<p class=\"testi1\">
    <FORM>
    <textarea cols=\"70\" rows=\"15\" READONLY>$messaggio</textarea>
    </FORM></p>";

    }

    ?>

    HELP ME!

  2. #2
    Rileggendo quello che ho scritto credo di essermi spiegato un po' malino.
    Io voglio che dopo che i campi sono stati compilati tutti e viene premuto il pulsante invia per mandare il form questo pulsante diventi disabilitato (onde evitare doppio clic e persone che inviando un allegato si stufano e cominciano a premerlo più volte pensando di fare presto).

    Grazie dell'attenzione e dell'aiuto.

    Scusate la mia ignoranza ma è la prima volta che scrivo in un forum e mi sono anche dimenticato di firmarmi.

    Ciao, Aldo.

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Prova cosi modificando il submit, a me funziona:
    codice:
    <form enctype="multipart/form-data" action="contatta.php" method="post" name="form1" id="form1" onSubmit="document.form1.invio.disabled=true; if(checkrequired(this)){return true}else{document.form1.invio.disabled=false;return false;}">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Grazie della risposta ma non mi funziona: mi dà il solito problema. Praticamente quando inserisco tutti i dati e premo invio il pulsante diventa disabled (e qui tutto ok) però non mi invia il form alla pagina contatta.php (mi diventa la pagina bianca e non succede nulla). Se invece non metto l'attributo disabled mi funziona alla perfezione

    Non sarà mica l'attributo stesso che fà bloccare il programma?



    Cmq grazie lo stesso. Posto l'intera pagina contattaci.html (finita) e contatta.php (da finire di sistemare) perchè stò impazzendo...

    Ciao, Aldo.

    CONTATTACI.HTML
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script SCRIPT type="text/javascript">
    function checkrequired(which){
    var pass=true
    if (document.images){
    for (i=0;i<which.length;i++){
    var tempobj=which.elements[i]
    if (tempobj.name.substring(0,8)=="required"){
    if (((tempobj.type=="text"||tempobj.type=="textarea") &&tempobj.value=='')||(tempobj.type.toString().cha rAt(0)=="s"&&tempobj.selectedIndex==-1)){
    pass=false
    break
    }}}}
    if (!pass){
    alert("Non hai compilato correttamente il form. Alcune informazioni non sono state inserite. Clicca su OK e verifica l'errore")
    return false
    }
    else
    return true
    }
    </script>
    <link type="text/css" rel="stylesheet" href="Stile1.css">
    <title>Contattaci</title>
    <style type="text/css">
    <!--
    .Stile1 {font-size: larger}
    .Stile2 {font-size: 16px}
    body {
    background-image: url(images/Contattaci.gif);
    }
    -->
    </style>
    </head>

    <body>


    </p>


    </p>
    <table align="center" cellpadding="8" cellspacing="0">

    <form enctype="multipart/form-data" action="contatta.php" method="post" name="form1" id="form1" onSubmit="document.form1.invio.disabled=true; if(checkrequired(this)){return true}else{document.form1.invio.disabled=false;retu rn false;}">

    <tr>
    <td width="233" valign="top">
    <div align="right" class="Stile1">Nome:</div></td>
    <td width="376" valign="top"><input type="text" name="requiredname" size="30"></td>
    </tr>
    <tr>
    <td valign="top"><div align="right" class="Stile1">Cognome:</div></td>
    <td valign="top"><input type="text" name="requiredsurname" size="30"></td>
    </tr>
    <tr>
    <td valign="top"><div align="right" class="Stile1">E-mail:</div></td>
    <td valign="top"><input type="text" name="requiredemail" size="30"></td>
    </tr>
    <tr>
    <td colspan="2" valign="top"> <div align="center" class="Stile1">Messaggio:</div></td>
    </tr>
    <tr>
    <td colspan="2" valign="top">
    <div align="center"><textarea cols="70" rows="15" name="requiredmessaggio"></textarea></div></td>
    </tr>
    <tr>
    <td colspan="2" valign="top">
    <div align="center"><span class="Stile1">File da allegare:</span>
    <input type="hidden" name="MAX_FILE_SIZE" value="750000000" />
    <input name="file1" type="file" size="50" />
    </div>
    <tr>
    <td colspan="2" valign="top">
    <div align="center"><input type="submit" value="INVIA" name="invio" />
    <input type="reset" value="CANCELLA" name="resetta" />
    </div>
    </form>
    </table>
    </body>
    </html>


    CONTATTA.PHP

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <LINK REL="SHORTCUT ICON" HREF="http://www.kingofcomputers.it/favicon.ico">
    <title>Contattaci - Invio messaggio</title>
    <link type="text/css" rel="stylesheet" href="http://www.kingofcomputers.it/Stile.css">

    </head>
    <body>
    <?php
    error_reporting(2047);
    if (isset($_POST["invio"])) {
    $percorso = "public/";
    $file = $_FILES['file1']['name'];
    /*Se non è stato allegato un file...*/
    if ($file == "") {
    //Recupero i dati inseriti dall'utente.
    $nome = $_POST['requiredname'];
    $cognome = $_POST['requiredsurname'];
    $email = $_POST['requiredemail'];
    $messaggio = $_POST['requiredmessaggio'];
    $messaggio = stripslashes($messaggio);

    //Controllo che il nome inserito sia valido, altrimenti dò un messaggio di errore e fermo il programma.
    if (!eregi("^[a-z ]+$", $nome)) {
    echo "<h1 align=\"center\">ERRORE:</h1>


    <h2 align=\"center\">Nome inserito con caratteri non validi. <a href=\"javascript:history.back()\">INDIETRO</a></h2>";
    exit;
    }
    //Controllo che il cognome inserito sia valido, altrimenti dò un messaggio di errore e fermo il programma.
    if (!eregi("^[a-z ]+$", $cognome)) {
    echo "<h1 align=\"center\">ERRORE:</h1>


    <h2 align=\"center\">Cognome inserito con caratteri non validi. <a href=\"javascript:history.back()\">INDIETRO</a></h2>";
    exit;
    }
    //Controllo che l'e-mail inserita sia valida, altrimenti dò un messaggio di errore e fermo il programma.
    if (!eregi("^([a-z0-9]+)([._-]([a-z0-9]+))*[@]([a-z0-9]+)([._-]([a-z0-9]+))*[.]([a-z0-9]){2}([a-z0-9])?$", $email)) {
    echo "<h1 align=\"center\">ERRORE:</h1>


    <h2 align=\"center\">La e-mail inserita non è valida. <a href=\"javascript:history.back()\">INDIETRO</a></h2>";
    exit;
    }
    echo "<h2>Grazie per averci contattato.
    Questi sono i dati che hai inserito:</h2>

    ";
    echo "Nome: $nome
    Cognome: $cognome
    Email: $email";
    echo "

    Messaggio:<p class=\"testi1\">
    <FORM>
    <textarea cols=\"70\" rows=\"15\" READONLY>$messaggio</textarea>
    </FORM>
    </p>";


    //Sostituisco i caratteri speciali PHP con quelli HTML
    $messaggio = htmlspecialchars($messaggio);
    $messaggio = nl2br($messaggio);
    $messaggio = ereg_replace("&#39;","'",$messaggio);
    $messaggio = ereg_replace("\r\n","",$messaggio);
    $messaggio = ereg_replace("\n","",$messaggio);
    $messaggio = ereg_replace("
    ","\n",$messaggio);
    $messaggio = ereg_replace("&lt;","<",$messaggio);
    $messaggio = ereg_replace("&gt;",">",$messaggio);
    $messaggio = ereg_replace("\n","
    ",$messaggio);

    }

    /*Se invece è stato allegato un file... */
    //copio il file nella cartella 'public' e faccio come sopra x i dati.
    else {if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {

    //Recupero i dati inseriti dall'utente.
    $nome = $_POST['requiredname'];
    $cognome = $_POST['requiredsurname'];
    $email = $_POST['requiredemail'];
    $messaggio = $_POST['requiredmessaggio'];

    //Controllo che il nome inserito sia valido, altrimenti dò un messaggio di errore e fermo il programma.
    if (!eregi("^[a-z ]+$", $nome)) {
    echo "<h1 align=\"center\">ERRORE:</h1>


    <h2 align=\"center\">Nome inserito con caratteri non validi. <a href=\"javascript:history.back()\">INDIETRO</a></h2>";
    exit;
    }
    //Controllo che il cognome inserito sia valido, altrimenti dò un messaggio di errore e fermo il programma.
    if (!eregi("^[a-z ]+$", $cognome)) {
    echo "<h1 align=\"center\">ERRORE:</h1>


    <h2 align=\"center\">Cognome inserito con caratteri non validi. <a href=\"javascript:history.back()\">INDIETRO</a></h2>";
    exit;
    }
    //Controllo che l'e-mail inserita sia valida, altrimenti dò un messaggio di errore e fermo il programma.
    if (!eregi("^([a-z0-9]+)([._-]([a-z0-9]+))*[@]([a-z0-9]+)([._-]([a-z0-9]+))*[.]([a-z0-9]){2}([a-z0-9])?$", $email)) {
    echo "<h1 align=\"center\">ERRORE:</h1>


    <h2 align=\"center\">La e-mail inserita non è valida. <a href=\"javascript:history.back()\">INDIETRO</a></h2>";
    exit;
    }

    echo "Nome: $nome Cognome: $cognome Email: $email";
    echo "
    Messaggio: $messaggio";
    }
    //////////////////////////////////////////////////////////////////////
    echo 'Nome file: '.$_FILES['file1']['name'].'
    ';
    echo 'Dimensione: '.$_FILES['file1']['size'].' byte
    ';
    echo '======================
    ';
    echo 'File caricato correttamente

    ';
    echo 'carica un altro file';
    } else {
    echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    }
    }


    ?>
    </body>
    </html>

  5. #5

    Programma javascript x una form

    Ciao a tutti!

    Potreste per favore postare un programma javascript che permetta di effettuare un controllo sui campi compilati di un form (che dia un messaggio se sono lasciati vuoti i campi obbligatori) e che al momento dell'invio renda i pulsanti invio e reset disabilitati.

    Grazie dell'attenzione e a tutti coloro che mi sapranno aiutare o consigliare.

    Aldo.

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.