Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sklejanie stringów i funkcji
ermar
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 9.06.2009

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


Witam.

Trafiłem na pewien problem.

Sklejam sobie w jedną zmienną różne dane (zwykły tekst przemieszany z danymi z bazy).
Przykładowo:
  1. $tresc .= '<option value="'.$r[1].'">'.$r[3].' | '.$r[2].' | '.$r[1].'</option>';
  2. $tresc .= $zmienna->show();


To co mam w drugiej linii wypada mi poza obieg dokumentu html.
Nieumiejętnie to sklejam w całość. Czy mógłbym prosić o podpowiedź jak prawidłowo podstawić to zmiennej $tresc?

Pozdrawiam


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





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(ermar @ 8.01.2011, 21:04:17 ) *
To co mam w drugiej linii wypada mi poza obieg dokumentu html.

No a co tam masz w tej zmiennej?

Cytat
Nieumiejętnie to sklejam w całość. Czy mógłbym prosić o podpowiedź jak prawidłowo podstawić to zmiennej $tresc?

Nie bo nie sprecyzowałeś tematu z NASZEGO punktu widzenia tylko ze swojego, czyli przy twoim komputerze, przy twoim kontekście myślowym, przy twoich danych których nam niestety brakuje. Co oznacza, żebyś na przyszłość nauczył się dawać wystarczającą liczbę informacji.


--------------------
Go to the top of the page
+Quote Post
ermar
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 9.06.2009

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


Hmm przepraszam jeżeli niejasno się wyraziłem.

Wstawiam edytor tekstowy SPAW

  1. include("spaw.inc.php");
  2.  
  3. $spaw1 = new SpawEditor("spaw1");
  4.  
  5.  
  6. $tresc .= '<option value="'.$r[1].'">'.$r[3].' | '.$r[2].' | '.$r[1].'</option>';
  7.  
  8.  
  9. $tresc .= $spaw1->show();
  10.  

Kod skracam bo raczej jest tu nieważny W sumie jest to formularz.

Normalnie używam tego tak (dla zobrazowania przykładu)
  1. <input type="text" name="slowa_kluczowe"><br><br>
  2. <label>Treść artykułu</label><br><br>
  3. <?php $spaw1->show(); ?>


Kiedy staram się wkleić $spaw1 -> show() w zmienną $tresc edytor wyświetla mi się - ale zupełnie poza ciałem dokumentu. Najpierw leci kod edytora a dopiero potem <!DOCTYPE HTML PUBLIC "-//W.....

Mam nadzieję że teraz jaśniej to wytłumaczyłem

Pozdrawiam
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. $tresc .= $spaw1->getHtml();


Ale i tak kiedyś Ci się przyda zajrzeć do tego ob_start i funkcji do niej rodzimych.
Poza tym chyba mi się wydaje, że umieszczasz ten edytor w środku "<select>"?


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





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 9.06.2009

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


Kurcze - naprawdę wielkie dzięki. Pomogło to co podałeś.
Dlaczego taka składnia ? Mógłbyś wytłumaczyć pokrótce skąd ten ->getHtml?

I jak by co to nie wklejam w selecta smile.gif Skróciłem kod do maksimum bo nie chciałem zaśmiecać forum, wiedziałem gdzie jest błąd tylko nie wiedziałem dlaczego.

ob_start mam w głównym indeksie i jest odpalone - cały szablon na tym biega.
W każdym bądź razie jeszcze raz wielkie dzięki. Wypalam się przed monitorem od 7 rano i już mało kojarzę więc naprawdę bardzo mi pomogłeś.

Pozdrawiam
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




getHtml w przeciwieństwie do show nie "wyświetla" edytora tylko zwraca jego kod. Oczywiście nie jest to żadna magiczna metoda php. Po prostu zassałem ten edytor i spojrzałem w źrodło.
  1. /**
  2.   * Outputs editor's HTML code to the client
  3.   */
  4. function show()
  5. {
  6. echo $this->getHtml();
  7. }

Gdyby nie było getHtml musiałbyś pobawić się z dodatkowym ob_start


--------------------
Go to the top of the page
+Quote Post
ermar
post
Post #7





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 9.06.2009

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


Właśnie miałem napisać, że działa najstarsza metoda na błędy : Jak coś nie działa i wszystko już zawiodło sprawdź w instrukcji.

wycinek z ich manuala
"And then you replace your textarea with a call to SPAW's show() method (or getHtml() if you want to get SPAW's code in a variable for later use)"

W każdym bądź razie jeszcze raz dzięki.
Pozdrawiam

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: 20.08.2025 - 14:16