verifica mail in db con jquery e ajax. Aiuto

Stato
Chiusa ad ulteriori risposte.

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
buonasera a tutti,
ho realizzato uno script in jquery che verifica l'esistenza nel db di un indirizzo mail ed eventualmente blocca il submit.
Funziona tutto bene se non quando inserisci un indirizzo già esistente e viene visualizzato l'errore se scrivo un altro indirizzo non va avanti e rimane bloccato. Devo aggiornare la pagina e scrivere la nuova mail. Cosa mi manca nel codice? questo è il codice jquery:

codice:
Codice:
$("#emailutente").keyup(function() {


   var dati = $('#emailutente').attr('value');

    var data_send="username="+dati;

        $.ajax({
            type: "POST",
            url: "newsletter_iscrizione.php",
            data: data_send,
            success: function(data){
			if(data=='1')
			{
				$(".mail").css("border","2px solid red");
				$('#campo').html('Email Esistente');
				$("#campo").css("color","red");
				$('#UsenameField').submit(function() {
				  //alert('Handler for .submit() called.');
				  return false;
				});
				
			}
			else
			{
				//$(".mail").css("color","");
			}
             }
           });
    });
 
Ultima modifica di un moderatore:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
L'errore sta nel fatto che una volta inserita un'email errata viene disabilitato l'evento submit del form, che non viene poi ripristinato quando inserisci un'email giusta. Ti consiglio di disabilitare semplicemente il pulsante di submit:
Codice:
$("#emailutente").keyup(function() {
  var dati = $('#emailutente').attr('value');
  var data_send = "username=" + dati;

  $.ajax({
    type: "POST",
    url: "newsletter_iscrizione.php",
    data: data_send,
    success: function(data) {
      if (data == '1') {
        $(".mail").css("border","2px solid red");
        $('#campo').html('Email Esistente');
        $("#campo").css("color","red");
        $('#submit').attr('disabled', true);
      }
      else {
        $('#submit').attr('disabled', false);
      }
    }
  });
});
Ovviamente devi assegnargli l'ID submit:
HTML:
<button type="submit" id="submit">Invia</button>
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Ciao! grazie per la risposta. Ora funziona ma volevo chiederti come far sparire il messaggio "email esistente" appena l'utente cancella anche una sola parola della mail per scrivere quella nuova. è possibile?
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Grazie mille è perfetto...

una curiosità:
se volessi passare altre variabili per il controllo come dovrei fare?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Ti dico come farei io. Crea il tuo form in questo modo:
HTML:
<!DOCTYPE html>
<html lang="it">
  <head>
    <meta charset="utf-8">
  </head>

  <body>
    <form method="post" action="register.php">
      <div>
        <label for="first_name">Nome:</label>
        <input type="text" name="first_name" id="first_name">
      </div>

      <div>
        <label for="last_name">Cognome:</label>
        <input type="text" name="last_name" id="last_name">
      </div>

      <div>
        <label for="username">Username:</label>
        <input type="text" name="username" id="username">
        <span id="username_error"></span>
      </div>

      <div>
        <label for="password">Password:</label>
        <input type="password" name="password" id="password">
      </div>

      <div>
        <label for="email">Email:</label>
        <input type="text" name="email" id="email">
        <span id="email_error"></span>
      </div>

      <div>
        <button type="submit" id="submit">Invia</button>
      </div>
    </form>

    <script src="http://code.jquery.com/jquery.min.js"></script>
    <script>
    // http://stackoverflow.com/a/2219966/705588
    var typewatch = (function(){
      var timer = 0;

      return function(callback, ms){
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
      }
    })();

    $(function() {
      $('#email, #username').keyup(function() {
        var elem = $(this);

        typewatch(function() {
          data = {};
          data[elem.attr('id')] = elem.val();

          $.getJSON('search_user.php', data, function(result) {
            errorElem = $('#' + elem.attr('id') + '_error');

            if (result.result) {
              errorElem.text('Valore già in uso.');
            } else {
              errorElem.text('');
            }
          });
        }, 500);
      });
    });
    </script>
  </body>
</html>
Il file search_user.php dovrà restituire un array JSON contenente result => true se l'utente con il dato specificato esiste, altrimenti result => false.

Ovviamente ci sono da sistemare alcune cose, tra cui gli stili del form, ma la linea generale è quella. In questo modo puoi controllare l'esistenza nel database di campi diversi con lo stesso codice (basta aggiungere selettori).
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
grazie mille!!!
volevo chiederti come mai :

<div id="bottoneredirect">dmokdmoskdmm</div>


$('#bottoneredirect').click(function (){
$(window.location).attr('href', 'https://www.mrw.it');
});

non funziona?
eppure sembra una cosa banale ma non vuole funzionare.
dove sbaglio?
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
non capisco dove sta l'errore. Potrebbe essere che va in conflitto con il menù della pagina anch'esso in jquery?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
In effetti non credo ci sia nessun errore. Ho fatto una prova veloce:
HTML:
<!DOCTYPE html>
<html lang="it">
	<head>
		<meta charset="utf-8">
		<title>Prova</title>
	</head>

	<body>
		<div id="test">aaaaaaa</div>
		
		<script src="http://code.jquery.com/jquery.js"></script>
		<script>
		$(function() {
			$("#test").click(function() {
				$(window.location).attr("href", "http://www.google.it");
			});
		});
		</script>
	</body>
</html>
E sembra funzionare correttamente.
 
Stato
Chiusa ad ulteriori risposte.
Discussioni simili
Autore Titolo Forum Risposte Data
W [C#] Verifica esistenza E-mail .NET Framework 2
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
D verifica codice fiscale persona fisica /aziendale stesso campo HTML e CSS 1
F [PHP] Verifica utente presente nel DB PHP 13
gandalf1959 [PHP] Verifica password per accesso ad area riservata PHP 3
M [Javascript] Verifica calcolo prima di fare insert Javascript 13
Samuele Ronzani [PHP] Verifica se un dato esiste già PHP 1
S [Javascript] Verifica separatore decimale sistema operativo Javascript 2
felino EXCEL: verifica dati mancanti tra due sheet Windows e Software 2
A Verifica validità data in Java Java 2
kikki882 verifica account - dati personali Social Media Marketing 0
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
L Wordpress: consiglio plugin per "verifica disponibilità" WordPress 0
MarcoGrazia Verifica di un indirizzo email Snippet PHP 0
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
francesco87 [Vendo] Verifica pagina (bollino grigio) Annunci servizi di Social Media Marketing 0
M [PHP] Verifica formato data in tempo reale PHP 2
WebDr [Javascript] verifica input Javascript 8
R [WordPress] Accesso al db e verifica credenziali (password criptata) WordPress 1
A VENDO ACCOUNT DI DIVERSE PIATTAFORME E VERIFICA FACEBOOK ACCOUNT(PHOTO TAG VERIFICATION,VERIFICA TEL Annunci servizi di Social Media Marketing 2
P verifica caratteri per email e password PHP 17
S Verifica Esistenza Codice Fiscale PHP 5
C verifica e invio ordine php PHP 19
MarcoGrazia Verifica della data inserita in un form ( utilizzando bootstrap ) Javascript 7
G verifica caricamento foto originali su social network o sito di hosting immagini Discussioni Varie 3
A Strumenti "ufficiali" per la verifica dei Cookie HTML e CSS 2
A verifica di proprietà bing webmaster tool Google Search Console 0
P Verifica form solo con php senza javascript PHP 15
D Verifica inserimento dati form PHP 12
P verifica utente in db PHP 6
L [MySQL] Verifica disponibilità camera MySQL 32
L vendo account facebook femmina 5.000 amici con verifica cell e tag superati Annunci servizi di Social Media Marketing 0
V verifica form jQuery 5
filippino Verifica email per attribuzione dei contenuti SEO e Posizionamento 0
N Verifica email di registrazione PHP 0
D Verifica plug-in aggiornati di Firefox non vede gli aggiornamenti effettivi Windows e Software 0
il_bauscia Verifica segnale operatore 5ghz Reti LAN e Wireless 2
Virginia86 [risolto] Problema select e verifica form PHP 38
G php asincrono con ajax 2 campi di verifica PHP 1
P Problema ocon verifica campo in javascript Javascript 7
M Cosa ne pensate del mio primo file PHP (verifica disponibilità stanze)? PHP 0
M adsmanager e messaggio di verifica email Joomla 0
asevenx modulo registrazione utenti, cicli if di verifica PHP 9
A Espressione Regolare per verifica stringa PHP 14
A verifica codice PHP 7
M Verifica HTTP o HTTPS PHP 1
M Verifica se una Funzione appartiene ad una Classe PHP 9
F Esiste un programma che verifica la home page e la corregge automaticamente? HTML e CSS 7
P problema verifica dati Ajax 58
P Verifica form misto php e JS Javascript 2

Discussioni simili