Controllo inserimento dati

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Ho creato un form con le varie verifiche effettuare d'inserimento dati, però mi piaceva che durante l'inserimendo di alcuni dati del tipo:

1) Username
2) Email

ci fossere le verifiche direttamente come nei forum. ossia quando uno scrive, compare una specie di "V" che ti dice che il dato inserito è corretto e non è presente nel db, e lo stesso per l'email. Com'è possibile effettuare ciò o cercare qualche esempio su internet ??? Cosa dovrei cercare più esattamente ??? Presumo che si faccia con jquery o javascript. Altro non saprei. Aspetto vostrii consigli e suggerimenti grazie. Spero di esserimi spiegato a sufficienza.
 
Io avevo trovato questo script che ho un pò modificato in base alle mie esigenze...

script1.php
HTML:
<?php
	$db = new mysqli('localhost', 'root' ,'mia_passwd, 'db');
	if(!$db) {
		echo 'ERROR: Could not connect to the database.';
	} else {
		if(isset($_POST['queryString'])) {
			$queryString = $db->real_escape_string($_POST['queryString']);
			if(strlen($queryString) >0) {
				$query = $db->query("SELECT id, CONCAT(nome, \" \", cognome) AS nomecognome
						     FROM clienti WHERE
						     telefono LIKE '%$queryString%'
						     OR (SELECT CONCAT(cognome, \" \", nome) AS cognomenome) LIKE '%$queryString%'
						     OR (SELECT CONCAT(nome, \" \", cognome) AS nomecognome) LIKE '%$queryString%'
						     OR email LIKE '%$queryString%'
						     OR info LIKE '%$queryString%'
 						     ORDER BY nomecognome LIMIT 10");
				if($query) {
					while ($result = $query ->fetch_object()) {
	         			echo '<li onClick="fill(\''.$result->id.'\');">'.$result->nomecognome.'</li>';
// 					  echo '<li onClick="fill(\''.$result->nome.$result->Cognome.'\');">'.$result->nome.$result->Cognome.'</li>';
	         		}
				} else {
					echo 'ERROR: There was a problem with the query.';
				}
			} else {
			}
		} else {
			echo 'There should be no direct access to this script!';
		}
		} ?>

e questo è l'input di inserimento:
HTML:
<script type="text/javascript">
	function fill(thisValue) {
		$(\'#inputString\').val(thisValue);
		setTimeout("$(\'#suggestions\').hide();", 200);
	}
	
	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$(\'#suggestions\').hide();
		} else {
		
			$.post(script1.php, {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$(\'#suggestions\').show();
					$(\'#autoSuggestionsList\').html(data);
				}
			});
		}
	} // lookup
</script>
	<input type="text" name="cliente" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
	 <div class="suggestionsBox" id="suggestions" style="display: none;">
	  <img src="'.$tmp.'include/upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
	    <div class="suggestionList" id="autoSuggestionsList">
	      &nbsp;
	    </div>
	</div>

Da quel che ho capito con onkeyup="lookup(this.value); manda il valore... ogni 200millisecondi (setTimeou) si esegue un'aggiornamento che guarda se ci sono corrispondenze nel db...
questo mostra sotto l'input l'elenco dei risultati trovati ma si potrebbe modificare.....

Ora non ricordo da dove l'ho trovato... cerca :fonzie:
 
A dirti la verità, da fare ne ho fin sopra i capelli ! :) in più sto appena iniziando a conoscere javascript...

Comunque se vuoi solo vedere se è presente il nome utente inserito dovrebbe bastare php... se trovi il valore (che non dovresti trovare)
reindirizzi dinuovo al form di inserimento e scrivi che il nome è già presente
Se vuoi un risultato istantaneo senza spedire il form dovresti capire gli script che ti ho postato sù... cambia $query con la query che devi lanciare e guarda se fungè..

Altrimenti aspetta le risposte dei più esperti ;)
Ciao
 
Ti spiego comunque come uso lo script io:
HTML:
function inputcliente()
{
$tmp=stamparadice(); 

print '<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<link rel="stylesheet" href="stile.css">
<script type="text/javascript">
	function fill(thisValue) {
		$(\'#inputString\').val(thisValue);
		setTimeout("$(\'#suggestions\').hide();", 200);
	}
	
	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$(\'#suggestions\').hide();
		} else {
		
			$.post(" '.$tmp.'include/clienti.php", {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$(\'#suggestions\').show();
					$(\'#autoSuggestionsList\').html(data);
				}
			});
		}
	} // lookup
</script>
	<input type="text" name="cliente" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
	 <div class="suggestionsBox" id="suggestions" style="display: none;">
	  <img src="'.$tmp.'include/upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
	    <div class="suggestionList" id="autoSuggestionsList">
	      &nbsp;
	    </div>
	</div>
	';
}
Questa funzione la includo nella pagina..
In pratica $tmp contiene dei ../ che mi portano alla cartella dove si trova lo script clienti.php
che riporto di seguito:
HTML:
<?php
	$db = new mysqli('localhost', 'root' ,'mysql', 'db');
	if(!$db) {
		echo 'ERROR: Could not connect to the database.';
	} else {
		if(isset($_POST['queryString'])) {
			$queryString = $db->real_escape_string($_POST['queryString']);
			if(strlen($queryString) >0) {
				$query = $db->query("SELECT id, CONCAT(nome, \" \", cognome) AS nomecognome
						     FROM clienti WHERE
						     telefono LIKE '%$queryString%'
						     OR (SELECT CONCAT(cognome, \" \", nome) AS cognomenome) LIKE '%$queryString%'
						     OR (SELECT CONCAT(nome, \" \", cognome) AS nomecognome) LIKE '%$queryString%'
						     OR email LIKE '%$queryString%'
						     OR info LIKE '%$queryString%'
 						     ORDER BY nomecognome LIMIT 10");
				if($query) {
					while ($result = $query ->fetch_object()) {
	         			echo '<li onClick="fill(\''.$result->id.'\');">'.$result->nomecognome.'</li>';
// 					  echo '<li onClick="fill(\''.$result->nome.$result->Cognome.'\');">'.$result->nome.$result->Cognome.'</li>';
	         		}
				} else {
					echo 'ERROR: There was a problem with the query.';
				}
			} else {
			}
		} else {
			echo 'There should be no direct access to this script!';
		}
		}

Per ora non ti sò dire + che questo... leggi bene... le risposte di ciò che cerchi dovrebbero essere quì
 

Discussioni simili