Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    77

    Gestione Validazione FORM

    Salve a tutti, avrei bisogno di migliorare la validazione dei form di registrazione di un sito. Ho bisogno di gestire la validazione della registrazione utenti in modo che mi restituisca un errore durante la fase di compilazione e non successivamente la pressione del pulsante "registrati".

    Mi spiego meglio, dati questi due campi di tipo testo

    Username
    Password

    Vorrei fare in modo che se l'utente inserisce una username già presente nel db li restituisca un messaggio di errore appena esce dal campo, idem se le due password non coincidono e non rispettano una determinata lunghezza. Io ora gestisco l'errore con javascript con l'event onclick. Però vorrei che una volta uscito dal campo Username parta una funzione con una query e controlli che il nome inserito non sia già presente ed eventualmente mi restituisce un errore a fianco del campo di testo? Come posso far partire una query con un evento di uscita dal campo?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    devi usare ajax

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    77
    Ciao, grazie per aver risposto, ho visto già in passato qualcosina in ajax, però sinceramente non ho trovato nulla che faccia al mio caso, avevo visto qualcosa in jquery però io gestisco gli errori con un file di lingua esterno in php tramite delle variabili mentre quello gestisce gli errori internamente al codice e non saprei proprio come integrare il tutto. E' possibile far partire una funzione php da Ajax?

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Originariamente inviato da Feder
    E' possibile far partire una funzione php da Ajax?
    Diciamo che detto così non è proprio corretto ma il risultato è proprio quello :-)

    ti posto un esmpio (preso da un libro) che fa proprio quello che vuoi te (manca la parte sql ma la puoi integrare te quella)

    file Ajax1.js
    Codice PHP:
    var request false;

    if (
    navigator.appName == "Microsoft Internet Explorer") {
        
    request = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        
    request = new XMLHttpRequest();
    }

    function 
    check(name
    {
        
    request.abort();
        
    request.open("GET""Ajax1.php?name=" nametrue);
        
        
    request.onreadystatechange=function() {
            if (
    request.readyState == 4) {
                
    document.getElementById('message').innerHTML request.responseText;
            }
        }
        
    request.send(null);

    come vedi questo non fa altro che fare una get al file Ajax1.php, ma questò verrà effettuato in modo asincrono

    file Ajax1.php
    Codice PHP:
    <?php
    function checkUsername($username) {
        
    $existingUsers = array('rasmus''zeev''andi');
        
    // empty check
        
    if ($username == '') {
            return 
    '';
        } elseif (
    strlen($username) < 4) {
            return 
    '<span class="error">
                Username is less than 4 characters
                </span>'
    ;
        } elseif (
    in_array($username$existingUsers)) {
            return 
    '<span class="error">
                Username already exists
                </span>'
    ;
        } else {
            return 
    '<span class="ok">
                Username is acceptable
                </span>'
    ;
        }
    }

    if(!
    class_exists('PHPUnit_Framework_TestCase')) {
        
    $name = isset($_GET['name']) ? $_GET['name'] : '';
        echo 
    checkUsername(trim($name));
    }
    Come vedi c'è un vettore di usr gia inserite invece della ricerca nel db, ma questo si può adattare facilmente

    ed infine il file Ajax1.html
    Codice 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" lang="en" xml:lang="en">
    <
    head>
    <
    title>Simple Ajax Example</title>
    <
    meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <
    style>
        .
    ok {colorgreen;}
        .
    error {colorred;}
    </
    style>
    <
    script type="text/javascript" src="Ajax1.js"></script>
    </head>
    <body>

    <h1>Registration:</h1>

    <form action="#">
     <div>
     <label for="name">Username:</label>
     <input id="name" name="name" type="text" onkeyup="check(this.value)" />
     <div id="message"></div>
     </div>
    </form>
    </body>
    </html> 
    fatti questi 3 file poi apri Ajax1.html e guarda il risultato

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    77
    A me non funziona ho provato con tutti i Browser non capisco dove possa essere l'errore perché non conosco ajax. Conosci qualche ottima guida?Anche in inglese non è un problema.

    Grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    77
    mi hai dato qualche spunto per iniziare. Ora provo qualche guida che trovo su google.

    Grazie ancora

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Originariamente inviato da Feder
    A me non funziona ho provato con tutti i Browser non capisco dove possa essere l'errore perché non conosco ajax. Conosci qualche ottima guida?Anche in inglese non è un problema.

    Grazie mille
    in che senso non funziona? ovviamente il file html lo devi aprire richiedendolo al server web, forse è per questo che non ti funzinava... io l'ho provato con 3 browser (ie, opera e firefox) e funziona perfettamente con tutti i

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    77
    Uso xampp probabilmente ha qualcosa che blocca, provo a caricarlo sul server direttamente.

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    xampp dovrebbe andare bene
    che errore ti riporta?

  10. #10
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    l'ho appena provato con xampp e funziona

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.