Pugger Skrevet 15. august 2007 Del Skrevet 15. august 2007 Hei! Jeg har en form med en tekstboks(epost) hvor jeg vil at innholdet i boksen skal bli sjekket opp mot en sql database. Hvis eposten eksisterer i databasen så må feltet fylles på nytt. Har prøvd meg litt fram men formen bare submitter uansett uten å kjøre scriptet : . Håper noen kan hjelpe meg, sikkert helt feil kode men her er koden sålangt: <?php require_once("funksjoner.php"); topp(); function sjekkEpost(){ $epost = ($_POST["epost"]); $Choo = new mysql(); $Choo->connect(); $result = $Choo->query("SELECT * FROM `kunde` WHERE epost=$epost"); $row = mysql_fetch_row( $result ); echo($result); } topp_meny(); ?> <form name='info' action="reg.php" method="post"> <div id='registrerdeg'> <table width="226" border="0" align="center"> <tr> <td width="71">Fornavn:</td> <td colspan="2"><input type="text" name="fornavn"></td> </tr> <tr> <td>Etternavn:</td> <td colspan="2"><input type="text" name="etternavn"></td> </tr> <tr> <td>Gatenavn:</td> <td colspan="2"><input type="text" name="gatenavn"></td> </tr> <tr><td>Postnr:</td> <td colspan="2"><input type="text" name="postnummer" maxlength=4></td> </tr> <tr> <td>Telefon:</td> <td colspan="2"><input type="text" name="telefonnr" maxlength=8></td> </tr> <tr> <td>Mobil:</td> <td colspan="2"><input type="text" name="mobil" maxlength=8></td> </tr> <tr> <td>Epost:</td> <td colspan="2"><input type="text" name="epost" /> </td> </tr> <tr> <td height="23"> </td> <td width="77"> </td> <td width="64"> </td> </tr> <tr> <td> </td> <td> <div align="center"> <input type="submit" name="button" id="button" value="Registrer" onSubmit="return checkform()"/> <script language="JavaScript" type="text/javascript"> function checkform() { sjekkEpost(); if ($epost == $result) { alert( "Epost addresse finnes fra før, vennligst skriv inn en ny adresse" ); return false ; } else { return true; }} </script> <label> </label> </div></td> <td><div align="center"> <input type="reset" name="button2" id="button2" value="Nullstill" /> </div></td> </tr> </table> <p align="center"> <label></label> <label></label> </p> </div> </form> Lenke til kommentar
Gjest Slettet+142 Skrevet 15. august 2007 Del Skrevet 15. august 2007 (endret) jeg skjønner virkelig ikke koden din. Du kan ikke få javascript til å kjøre en php-funksjon... Du kan, men da er vi inne på AJAX, og endring i struktur i koden. Endret 15. august 2007 av Slettet+142 Lenke til kommentar
Crowly Skrevet 16. august 2007 Del Skrevet 16. august 2007 (endret) Dette er uannsett feil $row = mysql_fetch_row( $result ); echo($result); $result inneholder ingen nyttig verdi du kan skrive ut, prøv med $row = mysql_fetch_row( $result ); echo($row[0]); -> eller hvilket felt du ønsker å skrive ut Denne bør også endres, ikke bruk SELECT * FROM ... hvis du ikke trenger alle feltene i tabellen, spesifiser kun de feltene du har behov for: fra: $result = $Choo->query("SELECT * FROM `kunde` WHERE epost=$epost"); til: $result = $Choo->query("SELECT felt1,felt2....,feltN FROM `kunde` WHERE epost='".mysql_real_escape_string($epost)."'"); Hvis du kun ønsker å sjekke om eposten allerede eksisterer i basen så brukt count(), f.eks slik $result = $Choo->query("SELECT count(*) FROM `kunde` WHERE epost='".mysql_real_escape_string($epost)."'"); For å sjekke om eposten så eksisterer så gjør du bare $row = mysql_fetch_row( $result ); if ($row[0]>0) { // eposten er allerede registrert } else { // eposten er ikke i basen } Som mariyo sier så må du bruke AJAX for å kombinere javascript og php. Men du kan oppnå tilsvarende effekt med kun php. Validering og skjema ligger i samme phpfil (reg.php), her er ett forenklet eksempel, sikkere flere forskjellige metoder som kan benyttes her PHP <?phpif (isset($_POST['regskjema'])) { // valideringsrutine // mere kode $row = mysql_fetch_row( $result ); if ($row[0]>0) { $epostfeil='Epostadressen er allerede registrert, bruk en annen'; $error=1; } // mere kode } if (!isset($_POST['regskjema']) OR $error==1) { // skriv ut skjema echo '<td>Epost:</td> <td colspan="2"><input type="text" name="epost" />'; if (isset($epostfeil) AND !empty($epostfeil)) echo '<span style="color: red;">'.$epostfeil.'</span>'; echo '</td>'; // resten av skjema } ?> Hvis du ønsker å bryne deg på AJAX, så ville jeg tatt en titt på denne siden http://www.ajax-tutorials.com/tutorial-list/ Endret 16. august 2007 av crowly Lenke til kommentar
Pugger Skrevet 16. august 2007 Forfatter Del Skrevet 16. august 2007 Dette er uannsett feil $row = mysql_fetch_row( $result ); echo($result); $result inneholder ingen nyttig verdi du kan skrive ut, prøv med $row = mysql_fetch_row( $result ); echo($row[0]); -> eller hvilket felt du ønsker å skrive ut Denne bør også endres, ikke bruk SELECT * FROM ... hvis du ikke trenger alle feltene i tabellen, spesifiser kun de feltene du har behov for: fra: $result = $Choo->query("SELECT * FROM `kunde` WHERE epost=$epost"); til: $result = $Choo->query("SELECT felt1,felt2....,feltN FROM `kunde` WHERE epost='".mysql_real_escape_string($epost)."'"); Hvis du kun ønsker å sjekke om eposten allerede eksisterer i basen så brukt count(), f.eks slik $result = $Choo->query("SELECT count(*) FROM `kunde` WHERE epost='".mysql_real_escape_string($epost)."'"); For å sjekke om eposten så eksisterer så gjør du bare $row = mysql_fetch_row( $result ); if ($row[0]>0) { // eposten er allerede registrert } else { // eposten er ikke i basen } Som mariyo sier så må du bruke AJAX for å kombinere javascript og php. Men du kan oppnå tilsvarende effekt med kun php. Validering og skjema ligger i samme phpfil (reg.php), her er ett forenklet eksempel, sikkere flere forskjellige metoder som kan benyttes her PHP <?phpif (isset($_POST['regskjema'])) { // valideringsrutine // mere kode $row = mysql_fetch_row( $result ); if ($row[0]>0) { $epostfeil='Epostadressen er allerede registrert, bruk en annen'; $error=1; } // mere kode } if (!isset($_POST['regskjema']) OR $error==1) { // skriv ut skjema echo '<td>Epost:</td> <td colspan="2"><input type="text" name="epost" />'; if (isset($epostfeil) AND !empty($epostfeil)) echo '<span style="color: red;">'.$epostfeil.'</span>'; echo '</td>'; // resten av skjema } ?> Hvis du ønsker å bryne deg på AJAX, så ville jeg tatt en titt på denne siden http://www.ajax-tutorials.com/tutorial-list/ 9291778[/snapback] Greit jeg vil gjerne gjøre dette med kun PHP. Skal eksempelet ovenfor stå i reg.php eller php fila som inneholder selve formen? Skjønte ikke helt hvordan jeg skulle fyllet ut heller. Lenke til kommentar
BigJackW Skrevet 16. august 2007 Del Skrevet 16. august 2007 Jeg vil anbefale deg å ta en titt på sprintf() og quote_smart() Lenke til kommentar
Crowly Skrevet 16. august 2007 Del Skrevet 16. august 2007 Greit jeg vil gjerne gjøre dette med kun PHP. Skal eksempelet ovenfor stå i reg.php eller php fila som inneholder selve formen? Skjønte ikke helt hvordan jeg skulle fyllet ut heller. Leste du denne linja: Validering og skjema ligger i samme phpfil (reg.php) Alt skal ligge i samme fil, se på kommentarene i eksemplet, der står det hvordan ting skal plasseres. Når du lager en quote som er veldig stor så legg den i skjul klammer [skjul][quote] .... [/quote][/skjul] så slipper vi lage poster en gang til bare for å svare med noen enkle linjer Lenke til kommentar
Pugger Skrevet 16. august 2007 Forfatter Del Skrevet 16. august 2007 Klikk for å se/fjerne innholdet nedenfor Greit jeg vil gjerne gjøre dette med kun PHP. Skal eksempelet ovenfor stå i reg.php eller php fila som inneholder selve formen? Skjønte ikke helt hvordan jeg skulle fyllet ut heller. Leste du denne linja: Validering og skjema ligger i samme phpfil (reg.php) Alt skal ligge i samme fil, se på kommentarene i eksemplet, der står det hvordan ting skal plasseres. Når du lager en quote som er veldig stor så legg den i skjul klammer [skjul][quote] .... [/quote][/skjul] så slipper vi lage poster en gang til bare for å svare med noen enkle linjer 9295461[/snapback] greit takker for svar. får prøve meg fram jeg da Lenke til kommentar
Crowly Skrevet 16. august 2007 Del Skrevet 16. august 2007 Hvis du står fast på noe så får du post kode snutten som du har problemer med, og en liten beskrivelse av problemet. Så er det mange her inne som er villig til å hjelpe deg videre Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå