Autor | Zpráva | ||
---|---|---|---|
*Marty* Profil * |
Tvořim jednoduchou administraci. Mám formulář s textarea, do kterého z databáze vypisuji obsah textu na stránce. Po odeslání formuláře s upraveným nebo neupraveným obsahem se stránka zpracuje na jiné stránce, která mě přesměruje na již aktualizovanou stránku. Při každém odeslání se mi na začátku textu v textarea vytvářejí mezery jako po stisknutí tabulátoru, které se neustále zvětšují. Pokud do výpisu přidám funkci nl2br, tak se mi začnou množit i tagy <br />. Nevím si s tím vůbec rady, poradí někdo ?
Kód: biografie_admin.php <?php //pripojeni do databaze include "../include/pripojit.php"; //nacteni textu z databaze $dotaz = "SELECT obsah FROM biografie"; $vysledek = mysql_query($dotaz) or die (mysql_error()); $radek=mysql_fetch_array($vysledek); //HTML kod include "header.php"; ?> <div id="obal"> <form action="biografie_edit.php" method="post"> <label for="obsah"> Obsah: </label> <br /> <textarea id="obsah" name="obsah" cols="81" rows="20" tabindex="1"> <?php echo $radek['obsah']; ?> </textarea> <br /> <input type="submit" class="uloz" value="Uložit" name="ulozit" id="ulozit" tabindex="2" /> </form> </div> //HTML paticka <?php include "footer.php"; ?> a stránka co zpracovává formulář po odeslání: <?php include "../include/pripojit.php"; $date=date("Y"."-"."m"."-"."d"); //update dat v databázi $update = "UPDATE biografie SET obsah='".$_POST['obsah']."', datum='".$date."' WHERE id=1"; $odeslat= mysql_query($update) or die(mysql_error()); ?> <html> <meta http-equiv='refresh' content='0;url=biografie_admin.php'> </head> <body> <center> <div> Pokud vás prohlížeč nepřesměruje, klikněte› na odkaz: <br /> <a href='biografie_admin.php'>Pokračuj</a></div> </center> </body> </html> Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Jan Tvrdík Profil |
#2 · Zasláno: 3. 1. 2010, 00:09:53
Zkus nahradit:
<textarea id="obsah" name="obsah" cols="81" rows="20" tabindex="1"> <?php echo $radek['obsah']; ?> </textarea> za <textarea id="obsah" name="obsah" cols="81" rows="20" tabindex="1"><?php echo $radek['obsah']; ?></textarea> |
||
*Marty* Profil * |
#3 · Zasláno: 3. 1. 2010, 00:21:50
Bezva, funguje... Díky moc, nenapadlo by mě, že to bude dělat zrovna tohle :) Ještě se zeptám, pokud bych v textarea chtěl na výpis obsahu použít funkci nl2br, abych mohl v textarea odřádkovávát enterem, tj.
<textarea id="obsah" name="obsah" cols="81" rows="20" tabindex="1"><?php echo nl2br($radek['obsah']); ?></textarea> jak zamezím tomu, aby se mi při opětovném uložení neduplikovaly tagy <br /> ? Takhle jak jsem to napsal se mi při každém uložení jeden vždy přídá. |
||
Alphard Profil |
#4 · Zasláno: 3. 1. 2010, 01:14:14
V závislosti na povaze textu buď strip_tags() nebo smazat jen <br />, třeba pomocí str_replace().
|
||
*Marty* Profil * |
#5 · Zasláno: 3. 1. 2010, 09:44:55
Mno to jo, takhle ve výsledku akorát nebudu mít žádný tag <br />... Mně jde o to, abych když to odřádkuju dvakrát měl 2krát tag <br /> a ne po dalším uložení 3,4,5,... Pokud to nějak jde, funkce nl2br je velmi šikovná, akorát tohle chování se mi nelíbí :)
|
||
AM_ Profil |
#6 · Zasláno: 3. 1. 2010, 11:37:00
A k čemu je ti používat tu funkci tady? Text v textarea se zalamuje podle skutečných odřádkování (newline), nikoli podle <br>, takže protahovat text zobrazený v textaree přes nl2br mi nedává moc smysl.
|
||
*Marty* Profil * |
#7 · Zasláno: 3. 1. 2010, 11:56:49
už vyřešeno.... na ukládání do databáze jsem použil funkci nl2br(), na výpis do textarea funkci strip_tags() a vše funguje podle představ :) Díky moc všem za rady a pomoc :)
|
||
Časová prodleva: 14 let
|
0