Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funkcja wartością zmiennej
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
  1. <?php
  2. $lista = lista_uzytkownikow('1', $sortowane_wedlug, $sortowanie_jak, $naglowek, $podstawowa);
  3. ?>


Dlaczego zmiast przypisywać wynik funkcji (który jest tabelką, a więc zawiera znaki html) cała tabel jest wyświetlana w miejscu, w którym pojawia się powyższy skrypt?

Z kolei kiedy zrobić coś takiego:

  1. <?php
  2. zawartosc('1', lista_uzytkownikow('1', $sortowane_wedlug, $sortowanie_jak, $naglowek, $podstawowa));
  3. ?>


Funkcja zawaartość odpowiada za zamykanie w niewieliej tabelce zawartosci podawanej jako 2 argument. Tu jednak problem jest taki, że najpierw wyświetlana jest zawartość, a pod spodem tabelka, w której teoretycznie ma być zamknięta (tabelka zawartościnie ma więc pojawia się tylko pasek odpowiedniej szerokości i wysokościkilku pikseli)
TomASS
Cytat
Dlaczego zmiast przypisywać wynik funkcji (który jest tabelką, a więc zawiera znaki html) cała tabel jest wyświetlana w miejscu, w którym pojawia się powyższy skrypt?

Bo może zamiast return $zawartosc; masz gdzieś echo $zawartosc;

Pokaż nam tą funkcję smile.gif
The Night Shadow
Funkcja listy żytkowników:

  1. <?php function lista_uzytkownikow($wyswietl, $sortowane_wedlug, $sortowanie_jak, $naglowek, $podstawowa)
  2. {
  3. ?>
  4. <table cellspacing="1" cellpadding="3" border="0" width="100%">
  5. <?php
  6. $zapytanie = mysql_query("SELECT * FROM logowanie ORDER by $sortowane_wedlug $sortowanie_jak");
  7. while($wiersz=mysql_fetch_array ($zapytanie)) 
  8. { 
  9. if ($numeracja % 2==0)
  10. {
  11. $barwa=$naglowek;
  12. }
  13. else
  14. {
  15. $barwa=$podstawowa;
  16. }
  17. ?>
  18. <tr>
  19. <td align="left" valign="middle" bgcolor="<?php echo "$barwa"; ?>">
  20. <b><?php echo "".$wiersz['login'].""; ?></b>
  21. </td>
  22. <td align="center" valign="middle" bgcolor="<?php echo "$barwa"; ?>">
  23. <?php
  24. linki('1', $wiersz['email'], 'RIGHT' , '0', 'MAILTO:'.$wiersz['email'], 'E-mail');
  25. ?>
  26. </td>
  27. <td align="center" valign="middle" bgcolor="<?php echo "$barwa"; ?>">
  28. <?php
  29. linki('1', $wiersz['gadu'], 'RIGHT' , '0', 'GG:'.$wiersz['gadu'], 'GG <img src="http://www.gadu-gadu.pl/users/status.asp?id='.$wiersz['gadu'].'" width="12" height="12">');
  30. ?>
  31. </td>
  32. <td align="center" valign="middle" bgcolor="<?php echo "$barwa"; ?>">
  33. <?php
  34. linki('1', $wiersz['tlen'], 'RIGHT' , '0', 'http://ludzie.tlen.pl/'.$wiersz['tlen'], 'Tlen <img src="http://status.tlen.pl/?u='.$wiersz['tlen'].'&t=1" width="12" height="12" border="0">');
  35. ?>
  36. </td>
  37. </tr>  
  38. <?php
  39. $numeracja++; 
  40. }
  41. ?>
  42. </table>
  43. <?php
  44. } ?>


Całość ma być yświetlana w tej funkcji:

  1. <?php function zawartosc($rodzaj_zawartosci, $zawartosc_zawartosci)
  2. {
  3. if ($rodzaj_zawartosci==1)
  4. { 
  5. ?>
  6. <table cellspacing="1" cellpadding="3" border="0" bgcolor="#000000">
  7. <tr>
  8. <td valign="top" align="left" width="400" bgcolor="#303030">
  9. <center>
  10. <?php
  11.  echo
  12. "$zawartosc_zawartosci";  
  13. ?>
  14.  </center>
  15. </td>
  16.  </tr>
  17. </table>
  18. <?php
  19. } 
  20. } ?>


Za pomocą:

  1. <?php
  2. zawartosc('1',lista_uzytkownikow('1', $sortowane_wedlug, $sortowanie_jak, $naglowek, $podstawowa));
  3. ?>
TomASS
To tak jak mówiłem. Zamiast zwarcać coś przez funkcję - Ty to wyświetlasz:
Np:
  1. ?>
  2. <table cellspacing="1" cellpadding="3" border="0" width="100%">
  3. <?php


A powinno to być tak:
1. Na początku masz zmienną np: $zwroc
2. Jak chcesz coś do niej dodać to daj:
  1. <?php
  2.  
  3. $zwroc .= '<table cellspacing="1" cellpadding="3" border="0" width="100%">';
  4.  
  5. ?>

itd.
3. Na końcu funkcji daj:
  1. <?php
  2.  
  3. return $zwroc;
  4.  
  5. ?>

I wtedy funkcja zamiast wyświetlić zwróci Ci zawartość.
Zrób krótki test i napisz:
  1. <?php
  2.  
  3. jakas_funkcja($param1,$param2);
  4.  
  5. ?>

I jak coś się wyświetli - to znaczy, że gdzieś masz echo/print/<? itp.


BTW: masz straszny bałagan w kodzie tongue.gif
The Night Shadow
Bałagan w jakim sensie? Jakies wskazówki?
TomASS
Z powodzeniem takie coś:
  1. cellpadding="3" border="0" width="100%"
  2.  
  3. align="left" valign="middle"

Możesz zastąpić CSS

  1. ?>">
  2. <b><?php echo "".$wiersz['login'].""; ?></b>
  3. </td>
  4. <td align="center" valign="middle" bgcolor="<?php echo "$barwa"; ?>">

Możesz zapisać:
  1. <?php
  2.  
  3. $zmienna .= '<b>'.$wiersz['login'].'</b></td><td bgcolor="'.$barwa.'">';
  4.  
  5. ?>


Możesz poczytać o szablonach.
The Night Shadow
dzięki :- )
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.