AJAX Abfrage ob Wert aus Input-Feld in MySQL Datenbank

Status
Für weitere Antworten geschlossen.

Snip3r

Well-known member
Hallo,

wie kann ich (sehr warsch. mit AJAX) überprüfen, ob ein Wert aus einem Input-Feld in der Datenbank ist?
PHP:
<tr class="first">
	<td>Name:</td>
	<td><input type="text" name="name" /></td>
</tr>
Neben dem Input Feld sollte angezeigt werden, ob der Name noch frei ist.
Mit PHP würde ich das so abfragen, aber mit PHP muss ich auch die Seite neu laden^^
PHP:
$check_query = "SELECT `name` FROM `daten` WHERE `name` = \"'.$name.'\" LIMIT 0,1";
	$num_rows = @mysql_num_rows($check_query);
if ($num_rows > 0) echo "Name vergeben";

mfg
snip3r
 
Nehmen wir an, du hast folgende Seite (das onChange, sowie der <span> sind hier wichtig [das input muss keinen speziellen Namen oder ID haben, dem this sei Dank :)] !)
PHP:
<html><head><script type="text/javascript" src="ajtest.js"></script></head>
<body>
<input type="text" name="name" value="" onChange="javascript:checkName(this);" />
<span id="userexists"></span>
</body>
</html>

Dann brauchst du "nur noch" folgendes js (hier ajtest.js genannt):
PHP:
var req = null;
getXMLHttp();
var req_current = false;

function getXMLHttp() {
     try{
           req = new XMLHttpRequest();
      }
      catch (e){
          try{
               req = new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e){
             try{
                 req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (failed){
                req = null;
            }
         }
      }
}

function checkName(xelement) {
 if(req_current) req.abort();
 req_current = true;
 var ev = xelement.value;
 req.open("GET", "http://deineseite.de/usercheck.php?user="+ev+"&rand="+new Date(), true);
 req.onreadystatechange = function() {
  if(req.readyState == 4) {
   if(req.status == 200) {
    if(req.responseText == "1") {
     document.getElementById("userexists").innerHTML = 'User existiert!';
    } else {
     document.getElementById("userexists").innerHTML = 'User existiert nicht!';
    }
   }
   req_current = false;
  } else {
   return false;
  }
 }
 req.send(null);
}

Bei deiner Seite (der PHP Check) siehts schon ganz gut aus, nur man muss sie etwas abändern ;) (und usercheck.php nennen):
PHP:
<?php
$check_query = "SELECT `name` FROM `daten` WHERE `name` = \"'.$name.'\" LIMIT 0,1";
    $num_rows = @mysql_num_rows($check_query);
if ($num_rows > 0) echo '1';
else echo '0';  
?>

MfG Arkanorian
 
Status
Für weitere Antworten geschlossen.

Beliebte Schlagwörter

Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.

Zurück
Oben Unten