Avatar billede compac Seniormester
14. april 2006 - 14:30 Der er 14 kommentarer og
1 løsning

database bliver ikke optateret

Jeg har et program, hvor databasen blot bliver udfyldt med en række tomme poster når man kører det. Endvidere virker script-fejlmeddelelsen ikke.
<?php
if (isset($_POST['titel']))    {
$server = "localhost";
$bruger = "root";
$kodeord = "kodeord";
$database = "test";
$conn = mysql_connect($server,$bruger,$kodeord) or die(mysql_error());
mysql_select_db($database,$conn) or die (mysql_error());
$sql = "insert into arrangement(titel,dato) values('$titel',now())";
mysql_query($sql) or die (mysql_error());
}
?>
<?php
{
?>
<script type="text/javascript">
function tjek() {
  if (skriveksp.titel.value == ""){
    alert("Du skal udfylde Titel.");
    skriveksp.titel.focus();
    return false;
  }
</script>
<form name="skriveksp"  method=action="<? echo $_SERVER["PHP_SELF"];?>" onClick=return tjek()>
<table border="1" cellpadding="5" cellspacing="0" width="668" height="232">
<tr>
<td align="right" width="158" height="47"><strong><font size="2">Titel:</font></strong></td><td width="471" height="46" colspan="3"><font size="2"><input type="text" name="titel" size="62" maxsize="100"></font></td>
</tr>
<tr>
</table>
<input name="skriveksp" type="submit" value="skriv" >
</form>
<?php
}
?>


Hvad er der galt?
Avatar billede horsmark Nybegynder
14. april 2006 - 14:37 #1
<form ... method=action= skal være method="POST" action="<?echo
Avatar billede jens12 Nybegynder
14. april 2006 - 14:39 #2
Hmm..Nu har jeg ikke så meget forstand på php og mysql men jeg prøver alligvel..
Prøv :
$titel = mysql_real_escape_string(strip_tags($_POST['titel']));
$sql = "INSERT INTO arrangement(titel,dato)"."VALUES('$titel',now())";
mvh
Jens
Avatar billede compac Seniormester
14. april 2006 - 14:51 #3
Det første var flovt. Den næste har jeg prøvet, men ingen af delene virker.
Avatar billede compac Seniormester
14. april 2006 - 15:20 #4
Efter at have rettet insert-sætningen tilbage virker den del af programmet, men script-fejlmeddelsen virker ikke.
Avatar billede Slettet bruger
14. april 2006 - 15:43 #5
Måske det vil hjælpe hvis du sætte anførselstegn om din onClick-parameter og satte et semicolon efter funktionskaldet, så der står onClick="return tjek();" :)
Avatar billede compac Seniormester
14. april 2006 - 15:54 #6
Vi er inde på det rigtige spor. Fejlmeddelelsen kommer imidlertid i samme øjeblik man placerer markøren i feltet - og ikke efter man har trykket på submit.
Avatar billede horsmark Nybegynder
14. april 2006 - 15:57 #7
well onClick=return tjek()> skal være onsubmit="return tjek()"
Avatar billede compac Seniormester
14. april 2006 - 16:13 #8
Nåh ja, det var selvfølgelig ikke til at vide, at det var det jeg ønskede.
Der er en detalje der driller. Formularen står og er "tømt" efter at have skrevet en post, sådan som den skal gøre. Hvis man så trykker på browserens "opdater" bliver den samme post skrevet igen i databasen. Hvordan får jeg bedst slettet de skjulte data.
Avatar billede horsmark Nybegynder
14. april 2006 - 16:21 #9
du mener at når formen gemmer data i db skal de samme data vises i formen igen og hvis man så trykker gem opdateres data i db istedet for at der gemmes nye rækker ?
Avatar billede compac Seniormester
14. april 2006 - 16:28 #10
Nej, Der vises ikke noget i min formular efter at have trykket submit -  og databasen bliver opdateret - og det er OK.
Men trykker på Explorers-opdater tilføjes den samme post en gang til.
-imod min vilje.
Avatar billede horsmark Nybegynder
14. april 2006 - 16:53 #11
nej du får vel indsat en ny post igenigen :-)

never mind .. du kan jo gøre således:

...kode...
$sql = "insert into arrangement(titel,dato) values('$titel',now())";
mysql_query($sql) or die (mysql_error());
print "Din post er indsat i basen";
exit;
Avatar billede compac Seniormester
14. april 2006 - 17:03 #12
Ja, men så går den ud af forløbet og over på en tom side. Meningen er, at man løbende skal kunne indtaste poster uden formularen forsvinder fra skærmen.
Man kan ganske vist godt taste en ny post som det nu er lavet, men dataene fra den seneste indtastning ligger stadig gemt i programmets variabler, og laver derfor nemt ravage.
Avatar billede horsmark Nybegynder
14. april 2006 - 17:08 #13
hmm hvad med dette i form tag
<form onload="reset()" ... >
Avatar billede compac Seniormester
14. april 2006 - 17:23 #14
Ja, nu kommer den i det mindste fra Explorers side med en meddelse om at: "Siden ikke kan opdateres før daterne sendes igen." - og så har man da mulighed for at standse den der.

Tak for hjælpen - læg et svar.
Avatar billede horsmark Nybegynder
14. april 2006 - 17:26 #15
her :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester