Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Wpisanie kodu HTML w PHP, problem z cudzyłowiem i apostrofem
Forum PHP.pl > Forum > Przedszkole
AmyLokmart
Taki trochę nietypowy temat

Mam sobie taki kod:

  1. <form action="#" method="#" name="panel" id="panel">
  2. <input type="button" value="Add" onclick="document.panel.content_1.value='Linia 1: to jest \'tekst\' oraz \"tekst\"'; document.panel.content_2.value='Linia 2: to jest \'tekst\' oraz \"tekst\"'; document.panel.content_3.value='Linia 3: to jest \'tekst\' oraz \"tekst\"';" style="cursor: pointer;" /><br />
  3. <input type="text" name="content_1" id="content_1" /><br />
  4. <input type="text" name="content_2" id="content_2" /><br />
  5. <input type="text" name="content_3" id="content_3" /><br />
  6. </form>


(Tylko proszę nie piszcie czegoś w stylu: ale dlaczego tak? nie lepiej osobno w javascripcie, a potem funkcją wywołujesz zadany proces?) Może i lepiej, ale mi jest potrzebny właśnie taki kod i koniec kropka smile.gif

W kodzie HTML występuje po zdarzeniu "onclick" cudzysłów: ("), po nim metoda: "document.panel.content_*.value" i treść zawarta w apostrofie ('), ta treść zawiera kolejny apostrof do wypisania ze znakiem slash: \' i cudzysłów: \"

Napisałam zestawy funkcji w PHP, które coś robią, ale to nie istotne co robią, istotne jest to, że powyższy kod HTML musi znaleźć się w obszarze PHP najlepiej w "print" albo "echo"

Dlatego to rozwiązanie odpada:

  1.  
  2. <?php
  3. print '
  4. ?>
  5.  
  6. <form action="#" method="#" name="panel" id="panel">
  7. <input type="button" value="Add" onclick="document.panel.content_1.value='Linia 1: to jest \'tekst\' oraz \"tekst\"'; document.panel.content_2.value='Linia 2: to jest \'tekst\' oraz \"tekst\"'; document.panel.content_3.value='Linia 3: to jest \'tekst\' oraz \"tekst\"';" style="cursor: pointer;" /><br />
  8. <input type="text" name="content_1" id="content_1" /><br />
  9. <input type="text" name="content_2" id="content_2" /><br />
  10. <input type="text" name="content_3" id="content_3" /><br />
  11. </form>
  12.  
  13. <?php
  14. ';
  15. ?>
  16.  


Jak wpisać poprawnie powyższy kod HTML do PHP skoro "print" i "echo" wymaga, aby wyświetlana treść była zawarta pomiędzy cudzysłowie lub apostrofy, a kod już zawiera cudzysłowie i apostrofy oraz w dodatku [\'] i [\"], które omijają zasady przetworzenia treści jako taki bonusowy apostrof i cudzysłów

Poniżej kod próbny (nie działa, wyświetla się pusta strona)

  1. print '<form action="#" method="#" name="panel" id="panel">
  2. <input type="button" value="Add" onclick="document.panel.content_1.value='Linia 1: to jest \'tekst\' oraz \"tekst\"'; document.panel.content_2.value='Linia 2: to jest \'tekst\' oraz \"tekst\"'; document.panel.content_3.value='Linia 3: to jest \'tekst\' oraz \"tekst\"';" style="cursor: pointer;" /><br />
  3. <input type="text" name="content_1" id="content_1" /><br />
  4. <input type="text" name="content_2" id="content_2" /><br />
  5. <input type="text" name="content_3" id="content_3" /><br />
  6. </form>';


Z "echo" też nie działa

Koniecznie musi być taki kod HTML w obszarze PHP i bardzo proszę nie pisać mi (a może zrób inaczej - tak albo tak...). Zależy mi na takim kształcie kodu jaki przedstawiłam.

Czy ktoś wie jak obejść ten problem? jest może jeszcze jakiś znak, który ominie powtórzone cudzysłowie i apostrofy?

Dziękuję za wskazówki, a jeszcze bardziej za poprawki smile.gif
nospor
Escapowanie escapowania

  1. echo 'onclick="document.panel.content_1.value=\'Linia 1: to jest \\\'tekst\\\' oraz \"tekst\"\'';


Albo uzywanie tego cuda <<< . Zapomnialem nazwy

  1. echo <<<TEXT
  2. onclick="document.panel.content_1.value='Linia 1: to jest \'tekst\' oraz \"tekst\"'
  3. TEXT;


Juz se przypomnialem: HEREDOC
https://www.php.net/manual/en/language.type....syntax.heredoc

O, i widze ze dodali NOWDOC. Wyglada tez ciekawie
https://www.php.net/manual/en/language.type...g.syntax.nowdoc
AmyLokmart
Witam

Drogi nospor dziękuję za Twoje podpowiedzi smile.gif Wykorzystałam wszystkie trzy metody i działa dobrze smile.gif
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.