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; }