Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie tabeli
Forum PHP.pl > Forum > PHP
mazyl
Witam!

nie wiem czy w dobrym dziale, jak coś prosze przenieść.

Mam kod przedstawiający tabelke, w której znajduje sie lista graczy,
potrzebuje aby ta tabelka była generowana w taki sposób że użytkownik dostaje link do tabelki i może ją wstawić w dowolne miejsce na swojej stronie.

jak to najlepiej zrobić aby uniknąć kodu z iframe?
markonix
W JS document.write.
Można też w PHP pobierać za pomocą file_get_contents.
mazyl
nie o to mi chodziło, może wyjaśnie na zasadzie przykładu.

mamy tabele;

  1. Lp. | Gracz | staty | czas gry
  2. 1 | staś | 6 | 2h 5 min
  3. 2 | zenek | 5 | 45 min
  4. 3 | edek | 3 | 1h 15min



tabela ta mieści się na mojej stronie, dane pobieram z mojej bazy danych.

Teraz chciałbym utworzyć spcjalny kod, dzięku któremu, każdy użytkownik tą samą tabele będzie mógł mieć na swojej stronie.

coś na zasadzie np.
  1. <script>
  2. </script>


Uriziel01
Masz trzy możliwości skrypt JS, IFrame'a albo jako obrazek. Zdecydowanie JS najwygodniejszy tutaj. Powiedz dokładnie jak to ma wyglądać + daj kawałek kodu w którym generujesz te tabelę to coś skleimy.

P.s-Które to już pytanie o tą listę graczy w którym się udzielam, mamy szczęście ciągle na Siebie trafiać widzę wink.gif
mazyl
to tak

tabela przedstawia się tak:

  1. echo "<center> <body background=#252525>
  2. <table border='0' cellpadding='5' cellspacing='2' align='center' width='100%'>
  3. <tr background='css/images/belka.png'>
  4. <td align='center'><font color='#ffffff' size='1'><b>Lp.</b></td>
  5. <td align='center'><font color='#ffffff' size='1'><b>Nick</b></td>
  6. <td align='center'><font color='#ffffff' size='1'><b>Punkty</b></td>
  7. <td align='center'><font color='#ffffff' size='1'><b>Czas gry</b></td></tr>";
  8.  
  9. $tab = $data['servercs']['players'];
  10. $il = 1;
  11. $n = count($tab);
  12. for ($i=0;$i<$n; $i++)
  13.  
  14. {
  15.  
  16. echo "<tr class='grafika'>
  17. <td align='center'><font color='#ffffff' size='1'>".$il++."</td>
  18. <td align='center'><font color='#ffffff' size='1'>".$data['servercs']['players'][$i][name]."</td>
  19. <td align='center'><font color='#ffffff' size='1'>".$data['servercs']['players'][$i][score]."</td>
  20. </tr>";
  21. }
  22.  
  23. echo '</table></center>';


tą tabele przy pomocy GameQ generuje.
zapisane jest to w oddzielnym pliku, tylko teraz chodzi mi o to
by użytkownik dostał własny link, który wstawi na swojej stronie i wyświetli mu się własnie taka tabelka z graczami.

dla przykładu działa tak np system cpmprofit albo adtaily, z tym że tam wyświetlane są reklamy i jest to złożony skrypt.
tutaj ma poprostu tylko wygenerować tabelke która będzie linkiem do strony.

co z tą listą graczy to sobie wiekszość poradziłem smile.gif teraz tylko na dodatkach mi zależy smile.gif abo mamy szczeście wpadać na siebie albo ja na tyle mało wiem że sam sobi nie moge poradzić smile.gif
Uriziel01
Jeżeli użytkownik ma możliwość dodania do swojej strony sktyptu JS, musisz stworzyć kod który pobierze zawartość tabeli przez AJAX'a, na przykład:
  1. function loadXMLDoc()
  2. {
  3. var xmlhttp;
  4. if (window.XMLHttpRequest)
  5. {// code for IE7+, Firefox, Chrome, Opera, Safari
  6. xmlhttp=new XMLHttpRequest();
  7. }
  8. else
  9. {// code for IE6, IE5
  10. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12. xmlhttp.onreadystatechange=function()
  13. {
  14. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  15. {
  16. obj = document.getElementById("tabela_graczy");
  17. obj.innerHTML = xmlhttp.responseText;
  18. }
  19. }
  20. xmlhttp.open("GET","http://localhost/test/generator.php",true);
  21. xmlhttp.send();
  22. }
  23. window.onload = loadXMLDoc;


Gdzie:http://localhost/test/generator.php to nazwa pliku w którym generujesz tabelę
a tabela_graczy to nazwa elementu w który chcesz taką tabele umieścić.

Teraz wystarczy że strona użytkownika będzie zawierała kod:
  1. <script type="text/javascript" src="http://localhost/test/skrypt.js"></script>
  2. </head>
  3. <div id="tabela_graczy"></div>
  4. </body>
  5. </html>

Gdzie http://localhost/test/skrypt.js to adres stworzonego skryptu wink.gif a po załadowaniu strony do elementu "tabela_graczy" trafi Twoja wygenerowana tabela smile.gif

EDIT:
Właśnie doczytałem że tabelka ma być tylko linkiem do strony, niestety wiąże się to z całkiem innym podejściem i generowaniem tego jako obraz przez GD.
mazyl
własnie też sie zastanawiałem czy nie łatwiej by nawet było by to było jako GD zrobione.

Szukając u wuja google znalazłem klase któratworzy Screeny plików.
z tym że ona zapiuje obraz do pliku, a tego bym chciał uniknąć, ponieważ byłoby duzo takich tabel do zapisu.

EDIT:
A co do tego co podałeś to równiez wykorzystam, postaram sie by tabela ta była uzupełniana automatycznie (żeby nie trzeba było odświeżać co chwile smile.gif )

Tylko potrzebuje 1 małą rzecz.
Jak zrobić by przekazać dla pliku generator.php jakąś wartość przy pomocy GET?
Głównie chodzi mi o to że linijka:
  1. xmlhttp.open("GET","http://localhost/test/generator.php",true);


jest stała, a chce uzyskiwać np:
  1. xmlhttp.open("GET","http://localhost/test/generator.php?ip=ip:port",true);

Uriziel01
No ale w takim razie w czym dokładnie tkwi problem ? Podstawy GD znasz a to raczej poza nie nie wykracza, musisz jedynie wrzucić kilka tekstów i wygenerować obraz. Jak bedziesz miał już jakiś gotowy kod i pytania to napisz je tutaj postaram się pomóc.
Co do automatycznego odświeżania w pierwszym przykładzie wystarczy dodać:
  1. setInterval("loadXMLDoc()",10000);

I tabela automatycznie aktualizuje się co 10 sekund smile.gif
mazyl
twoj skrypt działa świetnie wink.gif
wielki dzięki za niego.
juz zaczynam pisac Tabele w GD.
Mam nadzieje że tą razą już gotowym poprawnym kodem bede mogl sie pochwalić wink.gif
xxdrago
Po co korzystać z GD? Nie lepiej po prostu ładnie wyświetlić tabelkę, za pomocą JS?

Albo co lepsze, zacząć korzystać z XML i użytkownik by miał możliwość wyświetlenia tabelki w taki sposób jaki on chce, a nie jaki ty mu narzucasz smile.gif
Uriziel01
Być może ja takowych nie znam, ale powiedz czy istnieją jakieś działające sposoby wstawienia JS jako podpisu (footer'a) na forach dyskusyjnych ? Bo o ile znam takie tabele graczy, wykresy serwerowe etc. etc. to są one właśnie tam w znamienitej większości używane. Dlatego też dałem koledze pomysł z GD, ale oczywiście jeżeli ma taką możliwość niech wyświetla te danę pobierając je przez JS tu zgadzam się w 100%.

P.s-Gdy tak czytam ten post wygląda to tak jak gdybym miał do użytkownika @xxdrago jakieś wyrzuty i starał się przeforsować swoją rację, oczywiście tak nie jest a to jedynie mój brak taktu spowodowany 48h brakiem snu. Serdecznie przepraszam i pozdrawiam.
mazyl
Kolega Uriziel01 ma racje, chciałbym aby to co wygeneruje znalazło się wlasniew podpisach, w reklamach serwerów.

niestety 99% for zezwala tylko na bbcode, nie ma mozliwosci html chociazby w podpisach czy postach.


xxdrago taką wersje też chętnie przygotuje, być może znajdą się chętne fora które na własnej stronie chcą umieścić coś takiego.

Tak czy owak chcialbym utworzyć 2 możliwości, 1 z gd 2 z js smile.gif

Poniżej przedstawiem to co wyskrobałem, może macie pomysły jak to "upiększyć" ?

tutaj link do testów:
http://cs-server.pl/gracze.php?ip=31.186.83.163:27231
xxdrago
Uriziel01, sory może moja wypowiedz tak, zabrzmiała smile.gif

mazyl, a ty sobie napisz regułkę która usuwa nazwę hostingu, będzie ładniej wyglądać.
mazyl
Poprawiłem to smile.gif rzeczywiście ładniej wygląda smile.gif
Wielkie dzieki dla was 2 smile.gif
xxdrago
Troszeczkę brzydko to wygląda (tabelka). No i według mnie to jeżeli takie coś ma być, to jednak skorzystałbym z XML dając użytkownikowi, pełna kontrole nad wyświetlaną treścią.

Popraw sobie: Połącz steam://connect/ jest bez ip.
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.