Neuen Datenbankeintrag vor Absenden auf Redundanz testen

NTDY

Erfahrenes Mitglied
Hallo liebes Tutorial Team,

Problemwelt:
Bibliotheksverwaltungsprogramm - Neue Buecher mit eindeutiger Signatur eintragen

Problembeschreibung:
Ich habe ein Formular mit einem Textfeld. In dieses Textfeld soll ein eindeutiger Wert (Signatur) eingtragen werden. Um bereits vor dem Absenden des Formulars zu testen, ob dieser Wert bereits in der Datenbank vorhanden ist, wuerde ich am liebsten ein Javascript/AJAX haben, dass automatisch eine Datenbankabfrage durchfuehrt, wenn ein Wert (Signatur) in das Textfeld eingetragen wurde.

Es kann/soll beispielsweise false ausgeben, wenn eine Signatur bereits in der Datenbank vorhanden ist und true, wenn der Signaturwert noch nicht vorhanden ist.

Ueber Hilfestellung waere ich sehr dankbar.

Beste Gruesse

Andreas
 
Naja, du benötigst eigentlich nur ein serverseitiges Skript.
Diesem sendest du per AJAX die Signatur, es schaut nach, ob sie vorhanden ist und antwortet mit dem Ergebnis....womit genau hast du dabei Probleme?
 
Die Frage ist für mich mehr nach dem Wie.

Sagen wir mal, dass ich an der Serverseite ein PHP Skript habe, das mir alle Signaturen ausgibt:

Datei: get_signature.php
Code:
$sql=mysql_query("SELECT signature FROM print ORDER BY signature ASC");
   while($row=mysql_fetch_assoc($sql)){
   echo $row["signature"];
}

Wie muss ich dann mein Javscript schreiben, dass auf Basis dieses PHP Skripts erfährt, ob es eine Signatur bereits gibt?
 
Angenommen du hast ein Textfeld namens "siggi_natur" :-)

Dann machst du den Request an folgende Adresse:
Code:
"get_signature.php?siggi_natur="+encodeURIComponent(document.formularname.siggi_natur.value)

dein PHP-Skript müsste dann ca. so aussehen:
PHP:
<?php
if(isset($_GET['siggi_natur']))
  {
    $sql=mysql_query('SELECT * FROM print WHERE signature="'.mysql_real_escape_string($_GET['siggi_natur']).'"');
    if(mysql_num_rows($sql)>0){die('true');}
  }
?>
false

(Hab den Code jetzt nicht auf Tippfehler getestet, das Prinzip sollte daraus aber ersichtlich sein)
 

Neue Beiträge

Zurück