Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Jak przypisać tekstowi zawartemu w formularzu wartość?
matrioshq
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.07.2010

Ostrzeżenie: (0%)
-----


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ć.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
kapuch
post
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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

?

Ten post edytował kapuch 14.07.2010, 21:04:17


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
matrioshq
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.07.2010

Ostrzeżenie: (0%)
-----


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"
Go to the top of the page
+Quote Post
Wicepsik
post
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


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

Ten post edytował Wicepsik 15.07.2010, 11:22:38


--------------------
Go to the top of the page
+Quote Post
matrioshq
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.07.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Adam_
post
Post #6





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 4.12.2009

Ostrzeżenie: (0%)
-----


  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']);


Ten post edytował Adam_ 15.07.2010, 13:35:27
Go to the top of the page
+Quote Post
matrioshq
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.07.2010

Ostrzeżenie: (0%)
-----


_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?
Go to the top of the page
+Quote Post
Wicepsik
post
Post #8





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Pokaż jak masz zapisany skrypt.


--------------------
Go to the top of the page
+Quote Post
kapuch
post
Post #9





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kapuch 15.07.2010, 18:10:12


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
matrioshq
post
Post #10





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.07.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kapuch
post
Post #11





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kapuch 16.07.2010, 11:16:00


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
matrioshq
post
Post #12





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.07.2010

Ostrzeżenie: (0%)
-----


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ł.

Ten post edytował matrioshq 16.07.2010, 17:32:29
Go to the top of the page
+Quote Post
Neojawor
post
Post #13





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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']);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:21