Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][CSS]Funkcja wyświetla tekst poza pętlą.
publius
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Piaskownica

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


Witam.
Mam taki dziwny przypadek...

Mam prostą funkcję:

  1. <?php
  2. function check($nick) {
  3. $ufoList = array('nick1','nick2');
  4. if(in_array($nick, $ufoList)){echo 'class="klasa"';}
  5. }
  6. ?>


A tutaj pętlę:

  1. <?php
  2. for ($i = 1; $i <= 100; $i++):
  3.  
  4. if($bch[$bch_key] > $pch[$pch_key]):
  5. echo '<tr>
  6.    <td scope="row">'.$i.'</td>
  7.    <td>'.$bch_nicks[$bch_key].'</a></td>
  8.   <td'.check($bch_nicks[$bch_key]).'>'.$bch_eq[$bch_key].'</td>
  9.  </tr>';
  10. $bch_key++;
  11.  
  12. endif;
  13. endfor;
  14. ?>


O co chodzi:
Pętla wyświetla wiersze, a jeśli w wierszu wystąpi np. nick2 lub nick1 to ma wyświetlić:
  1. <td class="klasa">

Proste.

Sęk w tym, że pętla sobie wyświetla po kolei wiersze jak trzeba, a jak już trafia na nick, to wyświetla go nie tam gdzie ja oznaczyłem, tylko całkiem poza pętlą, gdzieś nad tabelą.
Nic z tego nie kumam, kombinowałem na kilka sposobów i ciągle to samo...

Jakieś wskazówki?

Ten post edytował publius 11.02.2009, 21:15:54
Go to the top of the page
+Quote Post
webdevil
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

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


  1. <?php
  2. function check($nick) {
  3. $ufoList = array('nick1','nick2');
  4. if(in_array($nick, $ufoList)){return 'class="klasa"';}
  5. return '';
  6. }
  7. ?>
Go to the top of the page
+Quote Post
ddiceman
post
Post #3





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Brakuje Ci spacji i w rezultacie dostajesz zlepek
Kod
<tdclass="klasa">

zamiast
Kod
<td class="klasa">

Wystarczy:
  1. <?php
  2. function check($nick) {
  3. $ufoList = array('nick1','nick2');
  4. if(in_array($nick, $ufoList)){echo ' class="klasa"';} //tu jest dodana spacja przed 'class'
  5. }
  6. ?>
Go to the top of the page
+Quote Post
publius
post
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Piaskownica

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


Dzięki za wskazówkę, ale nie chodzi o spację. Popełniłem tutaj literówkę i w skrypcie spacja jest.
Chodzi o coś innego. Po tym jak warunek jest spełniony, "class..." jest wyświetlane nie w znaczniku TD, ale całkowicie przed tabelą, przed znacznikiem <table>. WTF? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
ddiceman
post
Post #5





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Pokaz swoj kod a nie kod podobny - jak mamy sie domyslec, czemu tak jest?
Go to the top of the page
+Quote Post
webdevil
post
Post #6





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

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


Napisałem Ci wcześniej dobrą wersje funkcji check przecież..

Chodzi o to, że łącząc stringi masz:

  1. <?php
  2. echo '...<td'.check($bch_nicks[$bch_key]).'>...';
  3. ?>


a funkcja check wypisuje na ekran zamiast zwracać tekst 'class...'
ona się wykona jako pierwsza (przed wypisaniem na ekran tabeli) i wyjdzie Ci 'class...' przed całą tabelą
użyj tej funkcji którą Ci podałem wcześniej z return zamiast echo i wszystko będzie dobrze.
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Proszę o uzupełnienie tematu zgodnie z zasadami publikowania w Przedszkolu.
Go to the top of the page
+Quote Post
publius
post
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Piaskownica

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


Cytat(ddiceman @ 11.02.2009, 03:20:11 ) *
Pokaz swoj kod a nie kod podobny - jak mamy sie domyslec, czemu tak jest?

Nie było takiej potrzeby. Wpisałem wszystko, co było ważne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale dzięki za czas.

Cytat(webdevil @ 11.02.2009, 03:27:52 ) *
Napisałem Ci wcześniej dobrą wersje funkcji check przecież..
[ciach]

Dzięki! Racja... mój błąd, faktycznie powinienem użyć return... (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) Bardzo dziękuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat(erix @ 11.02.2009, 20:12:33 ) *
Proszę o uzupełnienie tematu zgodnie z zasadami publikowania w Przedszkolu.

Poprawiłem, przepraszam - zapomniało mi się (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Zawsze wstawiam...

Można zamknąć.

Ten post edytował publius 11.02.2009, 21:20:02
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 - 19:57