19. august 2014 - 18:54Der er
27 kommentarer og 1 løsning
Opslag i database under udfyldelse af formular
Jeg har brug for et script, som efter man i en formular har indtastet sin emailadresse, og går til næste felt, slår op i databasen og undersøger, om email-adressen allerede findes. Kan nogen hjælpe med dette.
Der kaldes "blur" når et felt forlades. I det "kald" kan du så kalde serveren bagved, via et ajax kald. post/get og få json, xml, tekst eller hvad du ønsker retur.
Håber det gav en ide, ellers siger du til.
Det er ikke til at sige hvor meget du kan og vil selv, udfra dit spørgsmål. :o)
Det er stort set ingenting jeg ved om ajax, andet end det giver mulighed for kald til serveren. Jeg går ud fra at scriptet: <script> $(function(){ $("#email").blur(function(){ $.post("997059.php", {email: $(this).val()}, function( data ) { if(data.exists){ alert("E-mail findes"); }else{ alert("E-mail findes IKKE"); } },'json'); }); }); </script> er "ajax"-kaldet. Jeg har kopieret delene fra de links du har foreslået, og de virker naturligvis fint hos mig, mht validering af email. Men hvor placerer jeg forespørgslen til databasen på serveren, for at se om emailadressen allerede findes?
Jeg har lavet formularen og kan sagtens sende indhold herfra til databasen. Jeg kunne også lave valideringen, når hele formularen er sendt, men det var for at spare serveren for unødig belastning.
Så prøver jeg at spørge anderledes. Hvis du kigger på mit eksempel. Hvor langt kan du komme med det og hvor vil du have hjælp? Jeg gider ikke lave en 100% løsning og så tager du den og spørger om samme problem en anden gang. :o) Du må prøve selv og jeg skal nok "holde dig i hånden" undervejs.
Jeg har lagt links til de 2 javascriptfiler samt funktionen ind på "a_tjek.php" (hvor man opretter sig som medlem), oprettet php-filen "a_tjek_mail.php" (som skal tjekke om emailen allerede er i brug). Der bliver fint oploadet oplysninger om ny bruger i databasen, men naturligvis ikke lavet et tjek på om email'en allerede er i brug, som jeg ønsker. Du kan se koden her: http://web-legestuen.dk/a_tjek.php Så mit spørgsmål er: Hvor og hvordan placerer jeg kaldet til databasen, som tjekker om emailen allerede eksisterer?
Bruger altid Crome og f12, men primært til at se kode. Ved ikke hvordan jeg kan bruge det diagnostisk. Må notere mig det, og lære det ved senere lejlighed.
Hos mig returnerer den konsekvent ingenting, ikke engang 0 - men min mail findes selvfølgelig heller ikke så få tjekket op på din kode igen og giv os evt en mail der findes.
Jeg har svært ved at tjekke op på koden, da jeg som jeg tidligere har skrevet, er komplet novice, og ikke aner hvad jeg skal kigge efter. Men en eksisterende mail i databasen kunne være: kontakt@riefart.dk
if(isset($_POST['email_felt'])){ //HER SKAL DU LAVE DIT DATABASE TJEK. //og så skal du lave en "retur" værdi om email er fundet eller ej. //Måske noget ala: if($email_fundet_i_database){ $ret = true; }else{ $ret = false; } echo json_encode(array('exists' => $ret)); exit(); }
Jeg tror du skal bruge lidt mere tid på at lære din developer toolbar noget bedre at kende for den kan altså guide dig rigtig meget på vej.
Jo, der bliver tydeligvis afsendt noget og der kommer også et svar retur - men du afsender parametren "email_felt" og ikke "email" og derfor når din PHP-kode aldrig ind i din if-sætning. Derfor er returværdien tom og da du udelukkende kigger på om exists er true ser det ud som om der ingenting sker.
Om din PHP kode derudover er ok tør jeg ikke sige.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.