Problema ocon verifica campo in javascript

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao cricric e ciao Borgo,

Allora ho il seguente problema. Ho modificato un pochino il modulo d'iscrizione e lo vorrei fare con la validazione asincrona dei dati ossia tramite ajax e javascript o jquery. Ancora non ho capito bene quale dei due entra in gioco se javascript o jquery. Dinalmente sono riusciuto ad ottenere qualcosina, ma purtroppo poca roba. Meglio poca che niente come se dice a Roma. E posto subito i codici che vorrei con il vostro aiuto poter modificare al meglio. I Codici sono composti fondamentalmente da due file

1) iscriviti.php

2) checkdati.php

passiamo al primo: iscriviti.php

PHP:
<html>
 <head> 

<script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
<script src='http://code.jquery.com/jquery-migrate-1.1.1.min.js'></script> 
</head> 
<script type="text/javascript"> 
$(document).ready(function() { $("input").keyup(function(){ 
var id = this.id; 
$.ajax({ type: "POST", 
url: "checkdati.php", 
data: id+"="+this.value, 
success: function(response){ 
$(id).html(response); 
} 
});
 }); 
});
 </script> 
</head> 
<body> <div align ="center">
 <h2>Esempio form di registrazione</h2> 
</div> <form action="checkdati.php" method="POST">
 <div class="row"> 
<p><p> 
<label>Nome: <input name="nome" id="nome" type="text"/> </label> 
</div> 
</p></p> 
<div class="row"> 
<p><p> <label>
Cognome: <input type="text" name="cognome" id="cognome"/>
</label> 
</div> 
</p></p> 
<div class="row"> 
<p><p>
 <label>Email: <input type="text" name="email" id="email"/>
<email></email></label> </div> </p></p> 
<div class="row">
 <p><p> 
<label>Username: <input type="text" name="username" id="username"/>
<username></username></label>
 </div> </p></p> <div class="row"> <label></label> 
<button type='submit'>Invia</button> </div> </form> </div> </head> <body> 
<?php 
require_once("connetti.php"); 
?>
 </body>
 </html>

2) Questo è il secondo codice che funge da controllo una volta inseriti i dati e sichiama:

checkdati.php

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
        <title>CheckDati</title>
        <script>
function setFocus()
{
document.getElementById("nome").focus();

}
</script>
    </head>
    <body>

        <?php
                require_once("connetti.php");
  

#Controlla se esiste l'email nel db              

$email = mysql_real_escape_string(strtolower(trim ($_POST['email'])));

if(isset($_POST['email']) ){

#se esistono variabili posto con sto nome allora faccio come segue: 

$checkemail=mysql_query("SELECT email FROM utenti WHERE email='$email'");

$controllo_esistenza = mysql_num_rows(mysql_query($checkemail));

#se controllo_esistenza darà come valore un numero maggiore di zero #vorrà dire che sono presenti alcuni record nel database, con lo stesso valore che hai scritto nel campo input

if($controllo_esistenza > 0)
    { 
    echo "Mi dispiace questa email già esiste"; 
    
    } else{ echo "Questa email che hai scelto è perfetto!"; 
    
    }

} 


        #Controlla se esiste nel db lo username
                
$username = mysql_real_escape_string(strtolower(trim ($_POST['username'])));

if(isset($_POST['username']) ){

#se esistono variabili posto con sto nome allora faccio come segue: 

$checkusername=mysql_query("SELECT username FROM utenti WHERE username='$username'");

$controllo_esistenza = mysql_num_rows(mysql_query($checkusername));

#se controllo_esistenza darà come valore un numero maggiore di zero #vorrà dire che sono presenti alcuni record nel database, con lo stesso valore che hai scritto nel campo input

if($controllo_esistenza > 0)
    { 
 #   echo "Mi dispiace questo utente già esiste"; 
   
    echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';
    } else{ 
    #    echo "Questo username che hai scelto è perfetto!"; 
    echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }

} 

?>
    </body>
</html>


Le immagini che carico sono le famose icone che se trova occupato lo username ad esempio, mette una bella "X" altrimenti se è libero una bella "V"

Orail punto che vorrei raggiongere con voi è il seguente. Questi sono solo due campi da verificare. Però se dovessi verificare più campi è possibibile mettere questa parte finale:

PHP:
if($controllo_esistenza > 0)
    { 
 #   echo "Mi dispiace questo utente già esiste"; 
   
    echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';
    } else{ 
    #    echo "Questo username che hai scelto è perfetto!"; 
    echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }

} 

?>
    </body>
</html>

Per tutto il resto dei controlli dei campi ???? Inoltre è possibile verificare se un campo rimane vuota o meno ?? In ultimo, vorrei sapere se è possibile una volta compilato tutto il modulo si può abilitare il tasto "invio" avendolo disabilitato precedentemente ovviamente. Grazie, aspetto una vostra risposta. Grazie. Spoero che mi potrete aiutare.
 
Ciao, in checkdati.php non devi mettere del codice html ma solo il codice php che serve per la verifica e stampi solamente il risultato
modifica cosi
PHP:
<?php

require_once("connetti.php");

#Controlla se esiste l'email nel db
if (isset($_POST['email'])) {
    $email = mysql_real_escape_string(strtolower(trim($_POST['email'])));
    #se esistono variabili posto con sto nome allora faccio come segue: 

    $checkemail = mysql_query("SELECT email FROM utenti WHERE email='$email'");

    $controllo_esistenza = mysql_num_rows(mysql_query($checkemail));

    #se controllo_esistenza darà come valore un numero maggiore di zero #vorrà dire che sono presenti alcuni record nel database, con lo stesso valore che hai scritto nel campo input

    if ($controllo_esistenza > 0) {
        echo '<img src="X-ICONA.png" alt="Icona KO" width="15" height="15">';
    } else {
        echo '<img src="V-ICONA.jpg" alt="Icona OK" width="15" height="15">';
    }
}

#Controlla se esiste nel db lo username
if (isset($_POST['username'])) {
    $username = mysql_real_escape_string(strtolower(trim($_POST['username'])));
    #se esistono variabili posto con sto nome allora faccio come segue: 

    $checkusername = mysql_query("SELECT username FROM utenti WHERE username='$username'");

    $controllo_esistenza = mysql_num_rows(mysql_query($checkusername));

    #se controllo_esistenza darà come valore un numero maggiore di zero #vorrà dire che sono presenti alcuni record nel database, con lo stesso valore che hai scritto nel campo input

    if ($controllo_esistenza > 0) {
        #   echo "Mi dispiace questo utente già esiste"; 

        echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';
    } else {
        #    echo "Questo username che hai scelto è perfetto!"; 
        echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }
}
?>
nel file iscriviti.php non server richiamare il file di connessione (connetti.php)
in piu chiudi due volte la il tag <head>
per il resto mi sembra ok
 
ciao

Ciao cricric,

Innanzi tutto grazie di aver dato un'occhiata al codice. Secondo poi volevo sapere un'info. per farla un po' più complicata, ossi avorrei mettere più campi da controllare, ma con un unico codice che mi dica "si ok", "no ok" è difficile da modificare leggermente quella parte di codice che avevo impostato ???? Sarebbero altri 4 campi da aggiungere e fare ad ognuno in fase di scrittura la verifica diretta. Spero di essermi spiegato bene. Grazie.
 
in checkdati.php puoi aggiungere tutti i campi che vuoi basta che segui la logica dei primi due
PHP:
if (isset($_POST['nome_del_campo da controllare'])) {
 
Ciao

Ciao crickric,

Allora cerco di spiegarmi meglio quello che vorrei fare e con i vari esempi e manuali che ho comprato non sono riuscito a fare. omeglio spiegano sempre per metà. Saltano alcuni passaggi che per loro magari sono sott'intesi ma per dei principainti come me e con mente molto occupata da altre problematiche no. Vediamo se riesco a farmi capire.

Dunque nel passaggio che verifica con i simboletti ossia questo:


verificadatiinseriti:

PHP:
if($controllo_esistenza > 0)
    { 
 #   echo "Mi dispiace questo utente già esiste"; 
   
    echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';
    } else{ 
    #    echo "Questo username che hai scelto è perfetto!"; 
    echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }

} 

?>

Vorrei che il controllo venisse fatto su ogni campo, come si fa con la compilazione di un forum qualsiasi. E se si salta qualche campo indicare con un bordo rosso e settare il cursore su focus.

Mi sembhra che questa operazione si faccia più o meno in questo modo:

PHP:
var nome = document.modulo.nome.value;
var cognome = document.modulo.cognome.value;
var username = document.modulo.username.value;

.....

E' dopo i punti sospensivi che non so andare avanti. Ripeto ho visto tanti esempi ma non sono riuscito a capire come apportare modifiche per come vorrei io.S pero di essermpi spiegato meglio stavolta. Tu mi puoi aiutare ???? Grazie spero di ricevere tuoi aiuto.

P.S.: Senza adoperare json, mi s'incasinano di più le idee :P
 
Ultima modifica:
chi è crickric?
cambia iscriviti.php cosi
HTML:
<html>
    <head> 
        <script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
        <script type="text/javascript"> 
            $(document).ready(function() { $("input").keyup(function(){ 
                    var id = this.id; 
                    $.ajax({ type: "POST", 
                        url: "checkdati.php", 
                        data: id+"="+this.value, 
                        success: function(response){ 
                            $("#check_" + id).html(response); 
                        } 
                    });
                }); 
            });
        </script> 
    </head> 
    <body> 
        <div align ="center">
            <h2>Esempio form di registrazione</h2> 
        </div> 
        <form action="checkdati.php" method="POST">
            <div class="row"> 
                <label>
                    Nome: <input name="nome" id="nome" type="text"/> 
                </label> 
                <span id="check_nome"></span>
            </div> 
            <div class="row"> 
                <label>
                    Cognome: <input type="text" name="cognome" id="cognome"/>
                    <span id="check_cognome"></span>
                </label> 
            </div> 
            <div class="row"> 
                <label>
                    Email: <input type="text" name="email" id="email"/>
                    <span id="check_email"></span>
                </label> 
            </div>
            <div class="row"> 
                <label>
                    Username: <input type="text" name="username" id="username"/>
                    <span id="check_username"></span>
                </label> 
            </div>
            <div class="row"> 
                <button type='submit'>Invia</button> 
            </div> 
        </form> 
    </body>
</html>
l'altro te l'ho gia postato, devi solo aggiungere gli altri campi che mancano nello stesso modo in cui hai messo i primi due
 
ciao

Ciao criric,

perdonami dell'errore del tuo nick. Mea Culpa (latino non lo so molto bene, anzi per niente direi). Grazie dell'aiuto oggi pomeriggio appena il mio synology sarà pronto, proverò il tuo codice che mi hai inviato e ti saprtò dire. Grazie della perdita di tempo dedicatami, e scusami ancora.
 
ciao

Ciao cricric,

Volevo un tuo parere al riguardo sui due campi che in genere chiedono doppia verifica. Ossia username email e password. Con questo nuvo metodo di validare direttamente i campi, conviene comunque mettere le doppie verifiche per quei campi suddetti ????? Oppure non è necessario ????? Grazie ancora.
 

Discussioni simili