2016-08-20 6 views
0

Ich versuche zu validieren, ob ein Benutzername bereits nimmt oder nicht. Dies bei Änderung eines Eingabefeldes. Ich habe bereits andere Schecks bekommen, aber sie funktionieren nicht mehr, seit ich den Ajax-Anruf hinzugefügt habe. Ich bin neu in Ajax und Javascript, so dass der Fehler da sein kann.Ajax Call PHP-Funktion bricht alle Javascript-Funktionen und Seite

die HTML-Formular:

<form action="test" method="post"> 
 
    <input id="username" type="text" placeholder="Gebruikersnaam" name="username" required onchange="checkUserName()"> 
 
    <br> 
 
    <input id="email" type="text" placeholder="Email" name="email" required onchange="validateEmail()"> 
 
    <br> 
 
    <input id="pass1" type="password" placeholder="Type wachtwoord" name="password1" required> 
 
    <br> 
 
    <input id="pass2" type="password" placeholder="Bevestig wachtwoord" name="password2" required onchange="passwordCheck()"> 
 
    <br> 
 
    <select name="typeAccount"> 
 
    <option value="bedrijf">Bedrijf</option> 
 
    <option value="recruiter">Recruiter</option> 
 
    <option value="werkzoekende">Talent zoekt job</option> 
 
    </select> 
 
    <p id="demo1"> 
 
    </P> 
 
    <p id="demo2"> 
 
    </P> 
 
    <button type="submit">Scrijf mij in!</button> 
 
</form>

das Javascript, die ich benutze:

<script src="jquery.js"> 
     function passwordCheck(){ 
      var password1 = document.getElementById('pass1').value; 
      var password2 = document.getElementById('pass2').value; 

      if(password1 !== password2){ 
       document.getElementById("pass1").style.borderColor = "#ff3333"; 
       document.getElementById("pass2").style.borderColor = "#ff3333"; 
      }else{ 
       document.getElementById("pass1").style.borderColor = "#1aff1a"; 
       document.getElementById("pass2").style.borderColor = "#1aff1a"; 
      } 
     } 
     function validate(email){ 
      var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
      return re.test(email); 
     } 
     function validateEmail(){ 
      var email = document.getElementById('email').value; 
      if(validate(email)){ 
       document.getElementById("email").style.borderColor = "#1aff1a"; 
      }else{ 
       document.getElementById("email").style.borderColor = "#ff3333"; 
      } 
     } 
     function checkUserName(){ 
      var username = document.getElementById('username').value; 
      if(username === ""){ 
       document.getElementById("username").style.borderColor = "#ff3333"; 
      }else{ 
       $.ajax({ 
        url: "userCheck.php", 
        data: { action : username }, 
        succes: function(result){ 
         if(result === 1){ 
          document.getElementById("username").style.borderColor = "#1aff1a"; 
         }else{ 
          document.getElementById("username").style.borderColor = "#ff3333"; 
         } 
        } 
       }); 
      } 
     } 
    </script> 

Das PHP-Skript, das ich diese verwenden ist in einer anderen Datei:

<?php 
    include("connect.php"); 
    $connect = new Connect(); 
    $username = mysql_real_escape_string($_POST['username']); 
    $result = mysql_query('select username from usermaindata where username = "'. $username .'"'); 
    if(mysql_num_rows($result)>0){ 
     echo 0; 
    }else{ 
     echo 1; 
    } 
?> 

Das Skript und das HTML-Formular befinden sich in der gleichen HTML-Datei und das PHP befindet sich in einer separaten PHP-Datei. Ich möchte nur überprüfen, ob der Name bereits in der Datenbank ist oder nicht.

+2

mysql_ * Funktionen Warnungen kommen ... Was Ihre Browser-Konsole sagt? – jaro1989

+0

Was bedeutet es - 'nicht mehr arbeiten'? –

+0

Sie bitte Ihre Browser-Konsole auf Fehler überprüfen .. – Lal

Antwort

0

Ich nehme an, Ihre Datenbankverbindung ist perfekt.

$username = mysql_real_escape_string($_POST['username']);

Änderung oben Code

$username = mysqli_real_escape_string($db_connection,$_REQUEST['action']);

weil in Ihrem Ajax Sie tun wie

$.ajax({ 
        url: "userCheck.php", 
        data: { action : username }, 
        succes: function(result){ 
         if(result === 1){ 
          document.getElementById("username").style.borderColor = "#1aff1a"; 
         }else{ 
          document.getElementById("username").style.borderColor = "#ff3333"; 
         } 
        } 
       }); 

Sie haben keine Anfrage Typen angegeben und Ihr Wert holen Verwenden Sie $_POST mit anderen Variablennamen username, die tatsächlich Wert 0 istSie sollten $_REQUEST['action'] verwenden und sicherstellen, dass Sie jquery.js Datei in Ihrem HTML hinzugefügt haben.

+0

@ jaro1989 Kein Problem. :) –

+0

Ich überprüfte die Chrome-Konsole und ich bekomme den folgenden Fehler: Uncaught ReferenceError: $ ist nicht definiert – stevedc

+0

haben Sie 'jquery.min.js' Datei hinzugefügt? –