Przerwanie działania skryptu po wystąpieniu błędu

0

Hej,
robię coś takiego, że po wpisaniu określonego ciągu znaków do form'a następuje połączenie do bazy i sprawdzenie czy np takie imię istnieje i jeżeli istnieje to ustaw formularz na background: red; I PRZERWIJ DODAWANIE DO BAZY a jeżeli nie istnieje to dodaj tą wartość wpisaną w forma. Wszystko mi działa oprócz tego co napisałem wielkimi literami czyli aby po wpisaniu takiego np imienia co już jest w bazie nie dodało następnego takiego samego, po prostu ma być tak jakby przerwanie skryptu. Wiem ze można np w bazie ustawić zrobić nie powtarzalne się wartości ale ja tak nie chcę. Poniższy przykład zaznacza mi ładnie inputa na czerwono jeżeli takiego imienia nie ma w bazie lecz po wciśnięciu 'wyślij' i tak dodaje do bazy. Nie wiem jak ten poniższy przykład obsłużyć aby było ok (nie dodawało do bazy jeśli imię już istnieje) , czy ktoś może mi pomoc?
to mój formularz

 
<form id="formKontakt" action="dodaj.php">

	<input type="text" id="kontakt" maxlength="40" /> 
	<input type="submit" value="wyslij" id="przycisk"/>
	<div id="popraw" style="color: red; visibility:hidden">Popraw dane</div>

</form>

to część pliku obslugaajax.php do połączenia z bazą (wszystko się łączy bez problemu)

        //połączenie do bazy, wpisanie selecta itp

	header("Content-type: text/xml");

	echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

	echo "<Kontakty>";

	while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
		echo "<Kontakt>";
		foreach($row as $klucz => $wartosc){
			if ($klucz == "Nr")
			    echo "<Nr>".$wartosc."</Nr>"; 
			else if ($klucz == "Imie")
			    echo "<Imie>".$wartosc."</Imie>"; 

		}	
		echo "</Kontakt>";
	}
	
	echo "</Kontakty>";

	mysql_close($link); 

a to plik js:

 
var XMLMainElement = null;
window.onload = init;

function init()
 {
   document.getElementById("kontakt").onblur = function()
   {
	  showBox(this.value);
   }
   suggestBox()
}

function ajaxInit() {
    //inicjalizacja ajaxa, XmlHttpRequest ....
}
function suggestBox() {
   var XHR = ajaxInit();
   if (XHR != null) {
	  XHR.open("GET", "obslugaajax.php" + "?random=" + Math.random(), true);
	 
	  XHR.onreadystatechange = function() {
		 if (XHR.readyState == 4) {
			if (XHR.status == 200) {
			   XMLMainElement = XHR.responseXML.documentElement;
			   showBox("");
			}
			else alert("Wystapil blad" + XHR.status);
		 }
	  }
	 
	  XHR.send(null);
   }
}
	
function showBox(tresc){
			 
   if (XMLMainElement != null){
	  var kontakty = XMLMainElement.getElementsByTagName("Kontakt");

	  document.getElementById("kontakt").className = 'error2';
	  document.getElementById("popraw").className = 'error3';	
		
	  for (var i = 0; i < kontakty.length; i++){
		 
		 var dane = kontakty[i].getElementsByTagName("Imie")[0].firstChild.nodeValue;
				   
		 if(dane.toLowerCase().indexOf(tresc.toLowerCase()) == 0 )		
			 document.getElementById("kontakt").className ='error';			 		 
	  }
   }
}

no i te trzy klasy styli:

.error{ background-color: white; }
.error2{background-color: red; }
.error3{visibility: visible; } 
0

wywołaj zdarzenie onSubmit

0

niby działa,
jednak możecie mi wyjaśnić ten dziwny przypadek

 
		 if(dane == document.getElementById("kontakt").value){
			document.getElementById("kontakt").className = 'error2';      //ta linia działa dopiero po wpisaniu niżej alert'a
			document.getElementById("eytkieta").style.visibility = 'visible';           //ta linia działa dopiero po wpisaniu niżej alert'a
			alert("W bazie istnieje już takie imie!");
		 }

Te dwie linie w których jest komentarz działają dopiero wtedy gdy wstawię alert poniżej inaczej nie działają. Możecie mi to wyjaśnić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1