2010-12-13 11 views
0

Verbindungs ​​ich ein kostenloses Skript für Benutzername Validierung auf den interwebs gefunden, Dies ist die Javascript-Seite davon:Benutzername Verfügbarkeitsprüfung nicht

$(document).ready(function() { 

    $("#username").blur(function() { 
     $("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow"); 
     //check the username exists or not from ajax 
     $.post("availability.php", { 
      user_name: $(this).val() 
     }, function (data) { 
      if (data == 'no') //if username not avaiable 
      { 
       $("#msgbox").fadeTo(200, 0.1, function() //start fading the messagebox 
       { 
        $(this).html('This User name Already exists').addClass('messageboxerror').fadeTo(900, 1); 
       }); 
      } else { 
       $("#msgbox").fadeTo(200, 0.1, function() //start fading the messagebox 
       { 
        $(this).html('Username available to register').addClass('messageboxok').fadeTo(900, 1); 
       }); 
      } 

     });  
    }); 

}); 

Sie sehen dies die Seite verweist „availibility.php“, dass Code ist wie folgt:

<? 

$existing_users=array('roshan','mike','jason'); 


$user_name=$_POST['user_name']; 


if (in_array($user_name, $existing_users)) 

{ 


echo "no"; 

} 

else 

{ 

//user name is available 

echo "yes"; 

} 

?> 

Und dann schließlich auf der Seite, das ist der Eingabe-Tag, das die Benutzerdaten in eintritt:

<input name="user_name" type="text" id="username" value="" maxlength="15" /> 
    <span id="msgbox" style="display:none"></span> 

Ich habe dieses Skript die neueste Version von jQuery (1.4.4) dies ist der Link zu einem Arbeitsbeispiel mit: Link

Wenn Sie in meiner Website in „mike“ geben, heißt es, dass der Benutzername vorhanden ist für den Einsatz. In dem Beispiellink, den ich oben angegeben habe, wird der Benutzername verwendet, wie es sein sollte.

Das einzige mögliche Problem, das ich mir vorstellen kann, ist möglicherweise mein Gastgeber bietet keine Unterstützung für Ajax? Gedanken?

Danke!

+1

Sie immer Tools wie Firebug verwenden können, zu untersuchen, was während der Ajax-Sachen vor sich geht. Auch in modernen Browsern wie Safari oder Chrome sind Webentwickler-Tools integriert. – miku

+0

Alle Hosts bieten AJAX-Unterstützung. AJAX ist nichts anderes als normale HTTP-Anfragen. Der einzige Unterschied besteht darin, wie diese Anforderung auf der Clientseite behandelt wird. – jwueller

+0

@elusive - Das ist in allen Fällen nicht ganz richtig, manche Plattformen behandeln sie explizit anders, wie CakePHP und Controller. –

Antwort

2

Überprüfen Sie die Antwort in Firebug, Chrom, etc ... was auch immer Sie verwenden, wäre meine Vermutung, dass "no" ist nicht die nur Sache in der Antwort hallte wird, können Sie eine einfache alert(data) am tun Oben in Ihrem Erfolgshändler in $.post(), um zu sehen, was sonst noch drin sein könnte. Stellen Sie sicher, nur was Sie wollen, ist in der Antwort wiedergegeben.

+0

Ah, Sie hatten Recht, nachdem ich eine Warnung ausgegeben hatte, bekam ich folgende Antwort: nein <- End Of Analytics-Code -> ! Wie kann ich diesen Analytics-Code von meinem Host aus filtern? – Ryan

+0

@Ryan - sieht aus wie etwas, das dein Host dort hinzufügt ... haben sie vielleicht Anweisungen, wie man es für AJAX-Anfragen umgehen kann? –

+0

Genau das war es, ich habe es deaktiviert und alles funktioniert gut. Vielen Dank für die Bereitstellung des Alert() Tipps! – Ryan