2016-06-30 3 views
0

Ich habe einen Text für den Kundennamen erstellt. Bereits registrierte Kunden werden beim Klicken auf dieses Textfeld angezeigt. Nur dieser registrierte Kunde kann die Daten eingeben. Ich habe Ajax benutzt, um den neuen Benutzer zu verhindern.Wie verhindert man das Speichern von Daten, wenn die Ajax-Antwort falsch ist?

dies ist die Ajax:

function validateForm() 
    { 
     var customerName = document.getElementById('customerName').value; 
     var customerId  = document.getElementById('customerId').value; 
     var getResponse=0; 

     var xmlhttp = new XMLHttpRequest(); 
      xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      // document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
      getResponse= xmlhttp.responseText;alert(getResponse); 

      if(getResponse=="0") 
      { 
       return false; 
      } 


      } 

     }; 

     xmlhttp.open("GET", "customer_check_ajax.php?name="+customerName+"&id="+customerId, true); 
     xmlhttp.send(); 

    } 

und hier ist die Ajax-Seite customer_check_ajax.php:

<?php 
require("../../config/config.inc.php"); 
require("../../config/Database.class.php"); 
require("../../config/Application.class.php"); 
if($_SESSION['travelType']=='Admin') 
{ 
    $check = 1; 
} 
else 
{ 
    $check = ''; 
    $logId = $_SESSION['travelId']; 
    $proId = $_SESSION['proId']; 
    $check = "proId='$proId'"; 
} 

$cusName = $_REQUEST['name']; 
$cusId = $_REQUEST['id']; 

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE); 
$qry="select * FROM ".TABLE_ACCOUNTS." WHERE ID='$cusId' and accountName='$cusName' and proId='$proId'"; 
$res = mysqli_query($connection, $qry);//echo $qry; 
$num = mysqli_num_rows($res); 
if($num>0) 
echo '1'; 
else 
echo '0'; 
?> 

hier ich die Antworten als 0 für neue Benutzer und 1 für bereits registrierte Benutzer bekommen würde . Aber ich möchte aufhören, Daten zu speichern, wenn ein neuer Benutzer hinzugefügt wird. Bitte hilf mir.

+0

Leider tun muss ich nicht verstehen. Sie sparen keine Daten irgendwo in diesem Code? Können Sie Ihre Frage bearbeiten, um das Problem deutlicher zu machen? Danke – RiggsFolly

Antwort

0

Sie Asynchronous Anfrage machen und die Antwort des Ajax kommen wird, nachdem die Funktion beendet ist ..

zu tun, was Sie wollen, Sie synchrone Ajax-Request

xmlhttp.open("GET", "customer_check_ajax.php?name="+customerName+"&id="+customerId, false); // `false` makes the request synchronous 
+0

Danke für deinen Kommentar. Ich habe getan, was du gesagt hast. Es tut uns leid. Immer noch kann der neue Benutzer die Daten hinzufügen und speichern. – Alisha

+0

Ich bekam die richtige Antwort von Ajax. Aber das Problem ist, während Antwort ist "0" der Speichervorgang sollte aufhören. Aber in meinem Fall werden alle Daten für den neu registrierten Benutzer gespeichert. – Alisha

+0

Die Funktion validateForm() wird in der Form onsubmit aufgerufen. So werden alle Felder innerhalb des Formulars in die Datenbank gespeichert. Der customerName, den ich in diesem Formular erstellt habe und der die Kunden anzeigt, die bereits registriert sind. Aber in meinem Fall kann ein neuer Benutzer seine Details einschließlich des "NAMENS" speichern. Sie sollten jedoch den neuen Kundennamen und das Speichern einschränken. Ich denke jetzt kannst du mein prb verstehen. Recht? @ RiggsFolly – Alisha

Verwandte Themen