Avatar billede human Nybegynder
09. marts 2003 - 05:36 Der er 6 kommentarer og
1 løsning

Tekst forsvinder..

Halløjsa!

Sidder med en lille ting her som skal opdate et felt i en tabel, som jeg så henter ud på en side. Og det virker sådan set også godt nok.
Lad og sige jeg lige har smidt noget i tabellen via formen, som så er blevet updated. Men hvis jeg så senere vil redigere i den tekst, hvordan får jeg den så til at komme frem i feltet, så jeg ikke skal til at skrive det hele igen?

$result = mysql_query("select * from reg_forside where id=1") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {

?>
<form action="reg_index.php" method="post">
<textarea cols="60" rows="20" name="teksten" value="<? print "$row[teksten]"; ?>"></textarea>
<input type="submit" value="Opdater" name="reg_index">
</form>
<?
}
if($_POST) {
mysql_query("UPDATE reg_forside SET teksten='$teksten' WHERE id=1")or die(mysql_error());
}
?>

Help :o)
Avatar billede 7th Praktikant
09. marts 2003 - 05:46 #1
Jeg har personligt lavet det sådan at jeg først udskriver data i formen som du også gør. Dernæst hvis post, altså rediger og så update bla bla... I sammen if sætning redirecter jeg til sidst til samme side, altså når update er færdig, så siden altså bliver opdateret med de nye datas. Håber du kan følge mig ;) Prøv det, ellers lad mig høre igen...
Avatar billede tefcke Nybegynder
09. marts 2003 - 06:48 #2
Jeg er rimlig sikker på at 'textarea' ikke har et value felt.
Prøv at ændre denne linie:
<textarea cols="60" rows="20" name="teksten" value="<? print "$row[teksten]"; ?>"></textarea>

Til:
<textarea cols="60" rows="20" name="teksten"><?=$row[teksten];?></textarea>


Desuden evalueres array elementer ikke direkte i strings (vel og mærke med dobbelt anførelsestegn), som almindelige variabler bliver gjort.

print "$row[teksten]" skal ændres til print "{$row[teksten]}" for at få den ønskede effekt!
Avatar billede human Nybegynder
11. marts 2003 - 16:59 #3
Oki.. Jeg vil lige afprøve dit forslag om et par dage når min server kommer op igen. HDD'en brændte sgu af :o(

Bare lige så i ved jeg ikke har glemt jer ;o)
Avatar billede human Nybegynder
21. marts 2003 - 21:23 #4
Jeps tefcke. Det var det der var problemet :o)

Men nu er der opstået noget andet.

Hvis der ikke står noget i feltet i db'en, vises formen ikke.
Avatar billede tefcke Nybegynder
22. marts 2003 - 01:56 #5
det er da klart, da du ikke hiver noget ud af databasen, kommer den slet ikke ind i while løkken, da den evaluerer false ved første tjek.

Hvis du er 100% sikker på du kun hiver 1 eller intet resultat ud af databasen (samt kan leve med en 'warning, undefined index at line xx'), kan du helt sløjfe while løkken.
Bare ændre while løkken til:

<?

$row = mysql_fetch_array($result)

?>
<form action="reg_index.php" method="post">
<textarea cols="60" rows="20" name="teksten">
<?=$row['teksten'];?>
</textarea>
<input type="submit" value="Opdater" name="reg_index">
</form>
Avatar billede human Nybegynder
22. marts 2003 - 02:02 #6
Doh :o)
Avatar billede human Nybegynder
22. marts 2003 - 02:02 #7
http://www.eksperten.dk/spm/331912 mere arbejde til dig hvis du er frisk :o)
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