| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  01-11-2009, 20:32 | #1 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
				
				[AJAX] Verifica disponibilità username
			 
		In teoria la verifica disponibilità username è già stata fatta, però com'è ora visualizza l'eventuale messaggio di errore in una nuova pagina. Quello che sto cercando di fare è, al evento onblur della form username, esequire la query php che controlla la disponibilità per poi visualizzare nella stessa pagina, se il nome utente scelto è disponibile, il tutto di fianco alla form. Ho cercato e trovato un po' di guide che spiegano come fare, però in ogni guida c'è sempre un file javascript che occupa un bel po' di KB (80-90-120) con al suo interno righe e righe di codice incapibile (almeno per me). E' possibile che non c'è un modo più semplice per farlo? Qualcuno sa dirmi dove posso trovare una buona guida, oppure in alternativa anche spiegarmelo direttamente se non è troppo lungo. Grazie. Mi affido a voi... | 
|   |   | 
|  02-11-2009, 00:30 | #2 | 
| Senior Member Iscritto dal: Oct 2006 Città: milano 
					Messaggi: 1439
				 | 
		E' normale, c'è bisogno di javascript per farlo.
		 | 
|   |   | 
|  02-11-2009, 12:09 | #3 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
		Ok, che c'è bisogno di javascript lo so, però quello che non capisco è perchè c'è tutta questa differenza. Cioè per visualizzare la stessa scritta in una nuova pagina ho fatto poche righe di codice, mentre per visualizzarlo nella stessa pagina dovrei avere un file di centinaia di righe di codice.
		 | 
|   |   | 
|  02-11-2009, 12:21 | #4 | 
| Senior Member Iscritto dal: Dec 2002 
					Messaggi: 3359
				 | 
		http://antirez.com/articoli/spaghettiajax.html lì è scitto abbastanza bene.
		 | 
|   |   | 
|  02-11-2009, 23:06 | #5 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
		Grazie, provo a vedere cosa riesco a combinare poi ti faccio sapere come va.
		 | 
|   |   | 
|  02-11-2009, 23:26 | #6 | 
| Senior Member Iscritto dal: Aug 2003 Città: Barletta (BA) 
					Messaggi: 939
				 | 
		jQuery    
				__________________ In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 | 
|   |   | 
|  03-11-2009, 01:49 | #7 | 
| Senior Member Iscritto dal: Feb 2007 Città: Verona 
					Messaggi: 1060
				 | 
		
Ed io aggiungerei: come minimo! E' abbastanza da incoscienti buttarsi sull'ajax senza un minimo di framework che assicuri compatibilità e facilità di utilizzo. La versione minimizzata di jQuery si trova a poche decine di kB. E' ovviamente consigliato linkare al file hostato da google.. 
				__________________ | 
|   |   | 
|  03-11-2009, 11:05 | #8 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
		Io adesso sto provando l'esempio del link, ci sono ancora degli errori da correggere, infatti quando premo controlla il browser mi dice: Error on page Pagina html: Codice: <HTML>
<HEAD>
<TITLE>CONTROLLO</TITLE>
<script language="Javascript" type="text/javascript">
<!--
var myRequest = null;
function CreateXmlHttpReq2(handler) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
}
function myHandler2() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("ex4result");
        e.innerHTML = myRequest.responseText;
    }
}
function esempio4() {
    var nome = document.f1.username.value;
    var r = Math.random();
    myRequest = CreateXmlHttpReq(myHandler2);
    myRequest.open("GET","check_user.php?username="+escape(nome)+"&rand="+escape(r));
    myRequest.send(null);
}
-->
</script>
</HEAD>
<BODY>
<form name="f1">
<input type="text" name="username" style="width: 230px"/><br><input type="button" onClick="esempio4()" value="Controlla dispo" />
<DIV id="ex4result" STYLE="position:absolute; border-style:solid; border-width:1; border-color:black; width:200px; color:black; background-color:white"></div>
<br>
<input type="text" name="password" style="width: 230px"/>
</form>
</BODY>
</HTML>Codice: <?php
include("connessioneDB.php");
// Se la variabile username è stata settata allora...
if (!isset($_GET['username'])) { echo "Username non inserito";
  else
    {
      $username = $_GET['username'];
      $query = "SELECT username FROM utenti WHERE username = '$username'"; 
      $ris = mysql_query($query, $db); 
      $ris = mysql_num_rows($ris); 
      if($ris != '0') { echo "Username già in uso" }
        else { echo " Username disponibile" }
?> | 
|   |   | 
|  03-11-2009, 16:21 | #9 | 
| Senior Member Iscritto dal: Aug 2003 Città: Barletta (BA) 
					Messaggi: 939
				 | 
		Con jQuery ti basterebbe  Codice HTML: <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function(){ $("#elemento").load("/ajax.php"); }); </script>  http://docs.jquery.com/Ajax/load 
				__________________ In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 Ultima modifica di nico159 : 03-11-2009 alle 16:26. | 
|   |   | 
|  03-11-2009, 18:29 | #10 | |
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | Quote: 
 | |
|   |   | 
|  03-11-2009, 23:31 | #11 | 
| Senior Member Iscritto dal: Feb 2007 Città: Verona 
					Messaggi: 1060
				 | 
				__________________ | 
|   |   | 
|  04-11-2009, 09:29 | #12 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
		Ok grazie, però non ho capito un'altra cosa.  Quei file li salvo e basta o vanno modificati e adattati in base alle esigenze? | 
|   |   | 
|  04-11-2009, 12:28 | #13 | 
| Senior Member Iscritto dal: Dec 2002 
					Messaggi: 3359
				 | 
		jquery è un framework, quindi possiede tante funzionalità(delle quali la maggior parte non ti verrà nemmeno in mente di usare) che ti fanno risparmiare tempo. Se ti interessa capirci un minimo di javascript ti consiglio iniziare ad usare un framewrok quando già sai come fare le cose, e sei consapevole che sprechi del tempo a riscrivere sempre le stesse cose. Il codice che hai postato sembra corretto, se dici di preciso in che riga viene l'errore ti possiamo aiutare, sempre se ti interessa ancora capirci qualcosa. | 
|   |   | 
|  04-11-2009, 13:37 | #14 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
		Si si, il fatto è che non mi da errori sulla pagina, però nella barra in basso del browser (IE), quando premo sul bottone "controlla dispo" mi visualizza il triangolino giallo di errore con scritto a lato: Error on page.
		 | 
|   |   | 
|  04-11-2009, 13:38 | #15 | 
| Senior Member Iscritto dal: Dec 2002 
					Messaggi: 3359
				 | 
		
Se ci clicchi dovrebbe aprirsi una finestrella con i dettagli dell'errore...
		 | 
|   |   | 
|  04-11-2009, 13:50 | #16 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | 
		dice: Message: Object expected Line: 33 Char: 5 Code: 0 URI: http://127.0.0.1/Prove/prova.html Non capisco il motivo dato che la pagina c'è ed è in quella cartella. | 
|   |   | 
|  04-11-2009, 13:50 | #17 | 
| Senior Member Iscritto dal: Dec 2002 
					Messaggi: 3359
				 | 
		Incollami la riga 33 di quel file.
		 | 
|   |   | 
|  04-11-2009, 14:02 | #18 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | Codice: function esempio4() {
    var nome = document.f1.username.value;
    var r = Math.random();
    myRequest = CreateXmlHttpReq(myHandler2);
    myRequest.open("GET","check_user.php?username="+escape(nome)+"&rand="+escape(r));
    myRequest.send(null);
}Codice: myRequest.open("GET","check_user.php?username="+escape(nome)+"&rand="+escape(r)); | 
|   |   | 
|  04-11-2009, 14:08 | #19 | 
| Senior Member Iscritto dal: Dec 2002 
					Messaggi: 3359
				 | 
		myRequest sembra essere nullo, incollami la funzione CreateXmlHttpReq
		 | 
|   |   | 
|  04-11-2009, 14:12 | #20 | 
| Senior Member Iscritto dal: Aug 2004 Città: Milano 
					Messaggi: 1310
				 | Codice: function CreateXmlHttpReq2(handler) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
} | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 17:41.









 
		 
		 
		 
		



 
		





 
  
 



 
                        
                        










