AJAX Abfrage ob Wert aus Input-Feld in MySQL Datenbank


  • Snip3r
  • 2659 Aufrufe 3 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AJAX Abfrage ob Wert aus Input-Feld in MySQL Datenbank

    Hallo,

    wie kann ich (sehr warsch. mit AJAX) überprüfen, ob ein Wert aus einem Input-Feld in der Datenbank ist?

    PHP-Quellcode

    1. <tr class="first">
    2. <td>Name:</td>
    3. <td><input type="text" name="name" /></td>
    4. </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-Quellcode

    1. $check_query = "SELECT `name` FROM `daten` WHERE `name` = \"'.$name.'\" LIMIT 0,1";
    2. $num_rows = @mysql_num_rows($check_query);
    3. if ($num_rows > 0) echo "Name vergeben";


    mfg
    snip3r
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • 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-Quellcode

    1. <html><head><script type="text/javascript" src="ajtest.js"></script></head>
    2. <body>
    3. <input type="text" name="name" value="" onChange="javascript:checkName(this);" />
    4. <span id="userexists"></span>
    5. </body>
    6. </html>


    Dann brauchst du "nur noch" folgendes js (hier ajtest.js genannt):

    PHP-Quellcode

    1. var req = null;
    2. getXMLHttp();
    3. var req_current = false;
    4. function getXMLHttp() {
    5. try{
    6. req = new XMLHttpRequest();
    7. }
    8. catch (e){
    9. try{
    10. req = new ActiveXObject("Msxml2.XMLHTTP");
    11. }
    12. catch (e){
    13. try{
    14. req = new ActiveXObject("Microsoft.XMLHTTP");
    15. }
    16. catch (failed){
    17. req = null;
    18. }
    19. }
    20. }
    21. }
    22. function checkName(xelement) {
    23. if(req_current) req.abort();
    24. req_current = true;
    25. var ev = xelement.value;
    26. req.open("GET", "http://deineseite.de/usercheck.php?user="+ev+"&rand="+new Date(), true);
    27. req.onreadystatechange = function() {
    28. if(req.readyState == 4) {
    29. if(req.status == 200) {
    30. if(req.responseText == "1") {
    31. document.getElementById("userexists").innerHTML = 'User existiert!';
    32. } else {
    33. document.getElementById("userexists").innerHTML = 'User existiert nicht!';
    34. }
    35. }
    36. req_current = false;
    37. } else {
    38. return false;
    39. }
    40. }
    41. req.send(null);
    42. }
    Alles anzeigen


    Bei deiner Seite (der PHP Check) siehts schon ganz gut aus, nur man muss sie etwas abändern ;) (und usercheck.php nennen):

    PHP-Quellcode

    1. <?php
    2. $check_query = "SELECT `name` FROM `daten` WHERE `name` = \"'.$name.'\" LIMIT 0,1";
    3. $num_rows = @mysql_num_rows($check_query);
    4. if ($num_rows > 0) echo '1';
    5. else echo '0';
    6. ?>


    MfG Arkanorian