Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Wpisanie kodu HTML w PHP, problem z cudzyłowiem i apostrofem, Czy ktoś wie jak ominąć błąd z cudzysłowiem i apostrofem
AmyLokmart
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 28.11.2021

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


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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował AmyLokmart 5.05.2022, 23:40:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 28.11.2021

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


Witam

Drogi nospor dziękuję za Twoje podpowiedzi (IMG:style_emoticons/default/smile.gif) Wykorzystałam wszystkie trzy metody i działa dobrze (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 00:29