[JS] Dodanie tagów do tekstu

0

Witam,
Jak można dynamicznie umieścić zaznaczony tekst w tagach? Chodzi mi o coś takiego jak np. na tym forum (po zaznaczeniu kodu i kliknięciu w 'php' tekst ten jest umieszczany w tagach php).

0

Pobierasz zaznaczenie:

http://msdn.microsoft.com/en-us/library/ms535869(VS.85).aspx
document.selection (chyba to)

A potem podmieniasz w tym miejscu.

0

Dzięki. Napisałem kod pobierający 3 parametry - nazwę pola textarea, znacznik początkowy i końcowy.

Jak umieścić to w zdarzeniu w funkcji echo()? Jak robię to w ten sposób: putTag('tekst', '[b]', '[/b]') to wyskakuje mi unexpected t_string (przez te apostrofy), a bez aposrofów nie działa. Co tutaj trzeba zmienić?

0

Przed ' wstaw \

0

@Perykles:
Albo zastosuj jakąś inną sztuczkę. PHP ma kilka sposobów na tworzenie stringów. I dodatkowy sposób na ich wyświetlenie.

Jak wiadomo, gdy chcesz np. do zmiennej przypisać jakiś string, to możesz użyć cudzysłowów lub apostrofów:

$cudzyslowy = "abc $jakas_zmienna";
$apostrofy = 'def';

Przy czym tylko stringi zamknięte w cudzysłowach są przetwarzane tak, że $zmienne są w nich rozwijane do wartości.

Ale te sposoby robią się upierdliwe, gdy sam tekst w stringach jest powiedzmy jakimś kodem i zawiera cudzysłowy lub apostrofy. Wtedy wygodnie jest skorzystać ze składni heredoc:

$skomplikowany_kod = <<<TAK_OZNACZĘ_KONIEC_STRINGA
to jest wnętrze stringa, może zawierać znaki takie jak " lub '
TAK_OZNACZĘ_KONIEC_STRINGA;

Robi się to tak, że string rozpoczynasz od ciągu <<<, po którym umieszczasz wymyślony przez Ciebie identyfikator, którym zakończysz string. Cały string będzie trwał przez tyle linijek ile chcesz i może zawierać takie znaki, jakie chcesz. Natomiast string kończysz, umieszczając w osobnej linii, na samym początku (bez żadnego wcięcia!), ten wybrany przez Ciebie identyfikator końca stringa, po którym może opcjonalnie wystąpić średnik i koniecznie znak nowej linii.

Zwyczajowo robi się tak, że jak chcesz wypisać przy użyciu echo kod HTML, to jako identyfikator kończący string wybierasz po prostu "HTML". Podobnie, dla JavaScriptu wybierasz JAVASCRIPT -- zwyczajowo używa się samych wielkich liter, by łatwiej zauważyć te znaczniki. Te zwyczaje nie są wymagane przez PHP, ale dobrze się do nich stosować. Czyli robisz np.

echo <<<HTML
  <p><strong class="important">To jest ciąg z kodem HTML!</strong></p>
HTML;

Być może nie zdajesz sobie sprawy z istnienia jeszcze lepszego bajeru. Zapewne wiesz, że kod PHP umieszczasz pomiędzy "<?php" oraz "?>". I pewnie też wiesz, że wewnątrz tych znaczników jest "prawdziwy" kod PHP, a na zewnątrz możesz umieścić dowolny tekst -- np. kod HTML -- i zostanie on wypisany. Ale możesz nie zdawać sobie sprawy z faktu, że będąc we wnętrzu tych znaczników, czyli wewnątrz prawdziwego kodu HTML, możesz w każdej chwili wyjść na moment na zewnątrz i PHP wyświetli ten tekst.

Brzmi to dość dziwnie i ciężko to wytłumaczyć -- trzeba zrozumieć we własnym zakresie. Po prostu taki plik PHP:

<?php
jakies_obliczenia();
wyswietl_cos();
echo '<strong onclick="funkcja_javascript(\'parametr\')">Stały kod HTML</strong>';
zakoncz_obliczenia();
?>

Możesz zamienić na coś takiego:

<?php
jakies_obliczenia();
wyswietl_cos();
// zwroc uwage na ponizsza linijke -- wychodze na chwile z trybu PHP
?><strong onclick="funkcja_javascript('parametr')">Stały kod HTML</strong><?php
zakoncz_obliczenia();
?>

Warto sobie pokombinować z różnymi sposobami definiowania i wyświetlania stringów, bo to ważna część PHP.

0

Dzięki ;) Wszystko "się kompiluje".

1 użytkowników online, w tym zalogowanych: 0, gości: 1