Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Zmiana wyświetlania
tuptak6
post 11.06.2012, 10:56:33
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 11.06.2012

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


Witam
Otóż znalazłem kod w którym chciałbym zamienić znaczniki <li>,<ul> na <table>,<tr>,<td>.
Chciałbym aby to wyglądało mniej więcej tak:

Kategoria1:
-SUB1 -SUB4 -SUB7
-SUB2 -SUB5 -SUB8
-SUB3 -SUB6 -SUB9

Oto mój kod:

  1. function category_list( $category_parent_id = 0 )
  2. {
  3. global $db;
  4. static $cats;
  5.  
  6. if ( ! is_array( $cats ) )
  7. {
  8. $cats = array();
  9. $sql = 'SELECT * FROM `category`';
  10. $result = $db->query($sql);
  11. while ( $cat = $db->fetch($result) )
  12. {
  13. $cats[] = $cat;
  14. }
  15. }
  16.  
  17. $list_items = array();
  18.  
  19. foreach ( $cats as $cat )
  20. {
  21.  
  22. if ( ( int ) $cat['category_parent_id'] !== ( int ) $category_parent_id )
  23. {
  24. continue;
  25. }
  26.  
  27. $list_items[] = '<li>';
  28.  
  29. $list_items[] = '<a href="#' . $cat['category_id'] . '">';
  30. $list_items[] = $cat['category_title'];
  31. $list_items[] = '</a>';
  32.  
  33. $list_items[] = category_list( $cat['category_id'] );
  34.  
  35. $list_items[] = '</li>';
  36.  
  37. }
  38.  
  39. $list_items = implode( '', $list_items );
  40.  
  41. if ( '' == trim( $list_items ) )
  42. {
  43. return '';
  44. }
  45.  
  46. return '<ul>' . $list_items . '</ul>';
  47.  
  48. }


Z góry dziękuje

Pozdrawiam arrowheadsmiley.png
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
memory
post 11.06.2012, 13:42:07
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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



W czym problem? Zamieniasz znaczniki na prawidłowe

Ten post edytował memory 11.06.2012, 13:56:20
Go to the top of the page
+Quote Post
tuptak6
post 11.06.2012, 16:53:49
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 11.06.2012

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


Chce osiąganąc taki efekt grupowania:

Cytat
Kategoria1:
-SUB1 -SUB4 -SUB7
-SUB2 -SUB5 -SUB8
-SUB3 -SUB6 -SUB9

czyli jakoś trzeba umieszczać </tr><tr> i <table>

a jak widzisz kod jest przystosowany pod li i ul.

Udało mi się osiągnąć mój cel, kod wygląda tak:

  1. function category_list( $category_parent_id = 0 )
  2. {
  3. global $db;
  4. static $cats;
  5.  
  6. if ( ! is_array( $cats ) )
  7. {
  8. $cats = array();
  9. $sql = 'SELECT * FROM `category`';
  10. $result = $db->query($sql);
  11. while ( $cat = $db->fetch($result) )
  12. {
  13. $cats[] = $cat;
  14. }
  15. }
  16.  
  17. $i = 1;
  18. $number = 3;
  19. $is = false;
  20.  
  21. foreach ( $cats as $cat )
  22. {
  23. if ( ( int ) $cat['category_parent_id'] !== ( int ) $category_parent_id )
  24. {
  25. continue;
  26. }
  27. // $cat = sortByOneKey($cat, 'category_desc',false);
  28. if ( $cat['category_parent_id'] == 0 )
  29. {
  30. echo '<tr><td style="background: red;" colspan="'.$number.'"><b>'.$cat['category_title'].'</b></td></tr>';
  31. $is = false;
  32. }
  33. else
  34. {
  35. if ($i % $number == 0)
  36. {
  37. echo '<tr>';
  38. $is = true;
  39. }
  40.  
  41. echo '<td>'.$cat['category_title'].'</td>';
  42.  
  43. if ($i % $number == $number -1)
  44. {
  45. echo '</tr>';
  46. $is = false;
  47. }
  48. }
  49. $i++;
  50. $list_items = category_list($cat['category_id']);
  51. }
  52. //if ($is) echo '</tr>';
  53. }


lecz gdy próbuje zamienić echo na $out .= wszystko się sypie.
Jest to dla mnie konieczna opcja gdyż w tej funkcji muszę mieć return.

Jeszcze raz proszę o pomoc. 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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:53