Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Jak przypisać tekstowi zawartemu w formularzu wartość?
Forum PHP.pl > Forum > Przedszkole
matrioshq
Witam. W moim przypadku jest to przedszkole zaawansowane więc proszę o wyrozumiałość smile.gif

Otóż chciałbym się dowiedzieć jak można przypisać tekstowi zawartemu w formularzu (HTML) jakąś wartość.

Formularz wygłąda tak:

<form action="index.php" method="post">
<textarea input type"text" name="pole" cols="90" rows="35">Tu wklej tekst</textarea>
<br/>
<input type="submit" value="Zrób to!" />
</form></center>

Moim celem jest późniejsza obróbka tekstu przy użyciu PHP.
Problem polega na tym, że nie wiem jak "przesłać" tekst do skryptu PHP, żeby go obrobić.

kapuch
  1. <? $_POST['pole']; ?> // to twoj tekst z textarea.

?
matrioshq
Próbowałem tak zrobić i coś jest nie tak.

Zapodałem tą linijkę od Ciebie i na końcu dałem print $_POST; żeby zobaczyć czy to pole mi się wyświetli.

<?
$_POST['pole'];

print $_POST;
?>

Niestety tekst się nie wyświetla, na ekranie widać tylko słowo "array"
Wicepsik
Cytat(kapuch @ 14.07.2010, 22:03:28 ) *
  1. <? $_POST['pole']; ?> // to twoj tekst z textarea.

?


Jak już to tak
  1. <?=$_POST['pole'];?>


~matrioshq, zmienna $_POST jest tablicą. Jak chcesz wyświetlić to użyj print_r
matrioshq
No więc stworzyłem wg Waszych porad coś takiego:

<?=$_POST['pole'];

print_r($_POST);

?>

Ale chyba nadal robię to źle bo efekt końcowy jest taki, że wyświetla mi:
Array ( [pole] => Tekst do wyświetlenia )

Chyba będę musiał poczytać o tych tablicach smile.gif
Adam_
  1. <?php
  2.  
  3. $pole = $_POST['pole'];
  4.  
  5. echo $pole;
  6.  
  7. ?>


Chyba o to Ci chodzi.

Tak jak napisałeś wcześniej ( print_r($_POST); ) nie da się chyba wyświetlić tekstu, najwyżej tak:

  1. print_r($_POST['pole']);
matrioshq
_Adam teraz jest w porządku, wielkie dzięki.

No to mam następny problem.

Skrypt ignoruje mi entery <br/>

Tekst po prostu jest ze sobą zlany, wszystko w jednej linii. Jest na to jakiś sposób?
Wicepsik
Pokaż jak masz zapisany skrypt.
kapuch
Cytat(Wicepsik @ 15.07.2010, 12:22:31 ) *
Jak już to tak
  1. <?=$_POST['pole'];?>


~matrioshq, zmienna $_POST jest tablicą. Jak chcesz wyświetlić to użyj print_r

No ja dobrze o tym wiem, tylko nie wiedzialem co on chcial z ta trescia dalej robic, wiec mu tylko pokazalem gdzie (w jakiej zmiennej) znajduje sie jego tresc smile.gif


Cytat(matrioshq @ 15.07.2010, 18:05:44 ) *
_Adam teraz jest w porządku, wielkie dzięki.

No to mam następny problem.

Skrypt ignoruje mi entery <br/>

Tekst po prostu jest ze sobą zlany, wszystko w jednej linii. Jest na to jakiś sposób?

Jesli ci chodzi o entery z textarea, to pier musisz zrobic tak:
  1. $tresc = str_replace("\r\n", "<br />", $_POST['pole']);
  2. // dopiero wyswietlasz zmienna $tresc
  3. // albo prosciej
  4. $tresc = nl2br($_POST['pole']);

Bo w textarea entery zapisywane sa jako \r\n, a nie jako <BR>

Cytat(Adam_ @ 15.07.2010, 14:33:16 ) *
Tak jak napisałeś wcześniej ( print_r($_POST); ) nie da się chyba wyświetlić tekstu, najwyżej tak:

  1. print_r($_POST['pole']);

Przeczytaj lepiej co to jest print_r() i kiedy jest to wykorzystywane, bo chlopakowi w glowie namieszasz.
Dobrze napisal print_r($_POST), tylko nie zrozumiel dlaczego ma to zrobic, Wicepsikowi zapewne chodzilo o to, aby matrishq wiedzial jakie zmienne ma w tablicy i pod jakimi kluczami sie znajduja, a pozniej odpowiednio (poprzez echo) sie do nich dobral.
matrioshq
Oho działa, wielkie dzięki kapuch

Spodziewajcie się w najbliższym czasie dalszych pytań tongue.gif

Hmm a jak połączyć te dwie pogrubione linijki by były wykonywane razem?

<?php

$tresc = str_replace("\r\n", "<br />", $_POST['pole']);

$tresc = str_replace(array('wyraz1', 'wyraz2'), '', $_POST['pole']);


print_r($tresc);

?>

Przy takim skrypcie wykonywane jest tylko drugie polecenie, natomiast 1sze jest pomijane.
kapuch
Bo w tej drugiej czynnosci musisz zamiast $_POST[] uzywac juz $tresc - bo to jest zmienna ktora przechowuje tresc, ktora zostala przerobiona w pierwszej linijce.
Poza tym pisalem juz, zebys nie uzywal print_r do wyswietlania zmiennej, tylko echo.
print_r jest do czegos innego.
matrioshq
Ok dzięki, wszystko OK.

No i mam następny problem. Chcę, żeby skrypt wykonywał się w textarea. Ten fragment kodu wygląda tak:

  1. <form action="result.php" method="post">
  2. <center><form action="result.php">
  3. <textarea name="pole" input type"text" cols="90" rows="35">
  4. <?php
  5.  
  6. $tresc = str_replace("\r\n", "<br />", $_POST['pole']);
  7.  
  8. $tresc = str_replace(array('wyraz1', 'wyraz2'), '', $tresc);
  9.  
  10. echo ($tresc);
  11.  
  12. <br/>
  13. <input type="submit" value="Zrób to!" />
  14. </form>


Problem w tym, że polecenie z 6. linijki przestało działać poprawnie, gdy skrypt umieściłem w textarea.
Zamiast przejść do następnej linii wyświetla mi się znacznik <br/>

Polecenie z 8. linijki działa w porządku.

Aha zapomniałem dodać, że gdy skrypt nie był umieszczony w dokumencie html, wszystko było OK, natomiast dopiero gdy zapodałem to między <textarea>...</textarea> problem się pojawił.
Neojawor
tak jak ktoś z chłopaków napisał, w textarea nowa linia to \r\n, a w HTML-u to <br /> więc jeśli tekst chcesz wypisać bezpośrednio w HTML-u, to musisz mieć tam <br />, żeby respektowało nowe linie. Natomiast wypisując coś w textarea, musisz mieć \r\n.Więc jeśli pobrałeś tekst z textarea i chcesz go również wpisać do textarea, to pomiń linię 6:
  1. $tresc = str_replace("\r\n", "<br />", $_POST['pole']);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.