Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> JavaScript escape();
Krzychur
post
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

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


Witam!
Po głębokich przemyśleniach, których nikt już nie zmieni, doszedłem do wniosku, że w moim przypadku, poniższe rozwiązanie jest najlepsze.

Załóżmy, że mamy duże pole formularza - <textarea> i chcemy klikając na przycisk otworzyć okno z parametrem content, którego wartość stanowi tekst, umieszczony wcześniej w textarea.

Na początku zrobiłem na szybko coś takiego:
  1. <textarea name="content" id="content"></textarea>
  2. <input type="button" onclick="window.open('preview.html?content='+document.getElementById('content').value,'Podglad','width=400;height=300')" />


Pierwsza faza testu niczego nie okazała szczególnego, ale jakiekolwiek "entery", były ignorowane, popatrzyłem na to co zawiera parametr content, więc pomyślałem o jakimś escapowaniu znaków, zrobiłem coś w stylu:
  1. <textarea name="content" id="content"></textarea>
  2. <input type="button" onclick="window.open('preview.html?content='+escape(document.getElementById('content').value),'Podglad','width=400;height=300')" />


Z początku wszystko wyglądało świetnie, ale niestety, okazało się, że np. polskie literki i różne znaki specjalne, odkodowane na stronie preview.html w php przy pomocy funkcji takich jak urldecode() i rawurldecode() nie dało pozytywnych rezultatów.

Może ktoś poleci mi jakąś lepszą funkcję js opierającej się na podobnych założeniach?

Dziękuję.


Jeżeli w kodzie dostrzegacie jakieś literówki, to nic, kod pisałem na wzór tego, który leży głęboko w mojej pamięci...


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


moze latwiej umiescic w preview zawartość w tagach <pre></pre> ?
Go to the top of the page
+Quote Post
revyag
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


A może inaczej ?

  1. <input type="button" onclick="window.open('preview.html','Podglad','width=400;height=300')" />


Natomiast w pliku preview.html robisz diva, powiedzmy tak:
  1. <div id="prev"></div>

i wyświetlasz
Kod
document.getElementById('prev').innerHTML=opener.document.getElementById('content').value


--------------------
-------------

------
Go to the top of the page
+Quote Post
Krzychur
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

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


Wszystko byłoby pięknie, gdyby nie fakt, że to ma być przekazane do php, a nie wysyłając formularz (co jest równoznaczne z kombinowaniem z edycją atrybutów target i action, a potem przywróceniem do normy), to najłatwiej jest to zrobić metodą GET...

Sposób nie podlega negocjacją niestety, chyba, że jest jakiś lepszy...


Przedstawiam poniżej drogę tej informacji:
wpisujemy ją w pole formularza -> klikamy przycisk otwierający stronę preview.html?content=(...) -> .htaccess wyłapuje wszystkie pliki zakończone na .html i przekazuje to do index.php -> metoda silnika sprawdza, z czym mamy do czynienia i przekazuje daną do specials.php?action=preview -> kolejna metoda silnika sprawdza jeszcze, czy w adresie ale tym z .html nie ma róznych parametrów w linku i jeżeli są to je wyłapuje i umieszcza je w tablicy - $_GET[$param] = urldecode($value); -> potem to wyświetlam, o bbCode nic nie mówię, bo sprawdzam z i bez bb


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





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Użyj funkcji do zastąpienia znaków nowej linii przez br. smile.gif
Robisz wszystko tak jak pierwszym sposobem, a w pliku preview.html używasz nl2br na tekście z geta.
  1. <?php
  2. echo nl2br($_GET["content"]);
  3. ?>


--------------------
-------------

------
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 - 05:27