| 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: 16 let
|
|||
0
).