Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [advAjax] Dynamiczne filtrowanie tabeli
Forum PHP.pl > Forum > XML, AJAX
jaskooo
Witam,

Na stronie mam wyswietlona tabele 4 kolumny (generalnie jest to mini statystyka wejsc na strone)

1 kolumna = data wejscia
2 kolumna = ip
3 kolumna = domena czyli gethostbyaddr
4 kolumna = ilosc wejsc

Zalozenie jest takie, aby po kliknieciu w dany link z kolumny 2 (czyli ip) w tabelce wyswietlaly sie tylko wejscia wykonane przez lasnie to ip.

Statystyka jest oparta o PHP+MySQL

oto kody:

Wpis do bazy

  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $domena = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  4. $data = date('d-m-Y');
  5. $zap2 = @mysql_query('select * from stat where ip='$ip' and data='$data'');
  6. $wyn2 = mysql_fetch_array($zap2);
  7.  
  8.  
  9.  
  10.  
  11. $ile = $wyn2['ile'] + 1;
  12.  
  13.  
  14. if ($wyn2)
  15.  
  16. {
  17. $ins = @mysql_query('UPDATE stat SET ile='$ile' WHERE ip='$ip' and data='$data'');
  18. }
  19.  
  20. else
  21. {
  22. $ins = @mysql_query('INSERT INTO stat SET ip='$ip', domena='$domena', data='$data', ile='1'');
  23. }
  24. ?>


Odczyt

  1. <div id="style2">
  2.  <table cellpadding=0 cellspacing=0 align=center>
  3. <tr>
  4. <td class="naglo">Data</td>  
  5. <td class="naglo">IP</td>
  6. <td class="naglo">Domena</td>
  7. <td class="naglo">Ile razy wszedl:</td>
  8. </tr>
  9. <?
  10. mb_conn_stat();
  11. $stat_wynik = mysql_query('SELECT * FROM stat ORDER BY id')
  12. or die('B³±d zapytania');
  13.  
  14. while($dane = mysql_fetch_assoc($stat_wynik))
  15. {
  16. echo '<tr>';
  17. echo '<td class="td_body">'.$dane['data'].'</td>';
  18. echo '<td class="td_body"><a href="java script:void(0)">'.$dane['ip'].'</a></td>';
  19. echo '<td class="td_body">'.$dane['domena'].'</td>';
  20. echo '<td class="td_body">'.$dane['ile'].'</td>';
  21. echo '</tr>';
  22.  }
  23. echo '</table>';
  24. ?>
  25.  
  26. </div>


Jak widzicie powyzej trzeba powiedziec ajaxowi zeby wyswietlil div-a id="style2", a php-owi i mysql-owi trzeba powiedziec, aby wy¶wietlil wpisy tylko tego ip, o ktorym powiedzial link smile.gif (swego rodzaju pseudo kod co?)
skowron-line
No okej wszystko ladnie tylko z czym masz problem?? bo niewidac kodu Ajax-a
sam cos probowales cos ci nie wychodzi?
nie wiesz jak sie do tego zabrac??
jaskooo
no wlasnie o ten kof ajax-a chodzi.


Pomysl jest na opcje Ajaxget() i n ajkies parametry. Tylko jestem świerzak w Ajax-ie i nie wiem jak sie do tego dobrac smile.gif

Czy to wystarczy:

  1. <?php
  2. // <![CDATA[
  3.  function ip(numer) {
  4.  var zapytanie = "admin.php?ip="+numer+"";
  5.  advAJAX.get({url : zapytanie,});
  6. }
  7. // ]]>
  8. ?>


a w kodzie php

  1. <?php
  2. mb_conn_stat();
  3.  
  4. if($ip)
  5. {
  6. $stat_wynik = mysql_query("SELECT * FROM stat where ip='".$_get['ip']."' ORDER BY id")
  7. or die('Błąd zapytania');
  8. }
  9. else
  10. {
  11. $stat_wynik = mysql_query("SELECT * FROM stat ORDER BY id")
  12. or die('Błąd zapytania');
  13. }
  14.  
  15. while($dane = mysql_fetch_assoc($stat_wynik))
  16. {
  17. echo "<tr>";
  18. echo "<td class='td_body'>".$dane['data']."</td>";
  19. echo '<td class="td_body"><a href="java script:void(0)" onclick="java script:ip("'.$dane['ip'].'")">'.$dane['ip'].'</a></td>';
  20. echo "<td class='td_body'>".$dane['domena']."</td>";
  21. echo "<td class='td_body'>".$dane['ile']."</td>";
  22. echo "</tr>";
  23.  }
  24. echo "</table>";
  25. ?>


Próbuje dalej.

Teraz jest tak


Strona, na ktorej ma sie to dziac:

  1. <head>
  2.  
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  4. <link rel="stylesheet" type="text/css" href="/styles/moj.css" />
  5. <script type="text/javascript" src="advajax.js"></script>
  6. <script type="text/javascript" src="sort.js"></script>
  7. <title>admin</title>
  8.  
  9. <div id="dane">
  10.  <table cellpadding=0 cellspacing=0 align=center id="dane">
  11. <tr>
  12. <td class="naglo">Data</td>  
  13. <td class="naglo">IP</td>
  14. <td class="naglo">Domena</td>
  15. <td class="naglo">Ile razy wszedl:</td>
  16. </tr>
  17. <?
  18. mb_conn_stat();
  19.  
  20. $stat_wynik = mysql_query("SELECT * FROM stat ORDER BY id")
  21. or die('Błąd zapytania');
  22.  
  23.  
  24. while($dane = mysql_fetch_assoc($stat_wynik))
  25. {
  26. echo "<tr>";
  27. echo "<td class='td_body'>".$dane['data']."</td>";
  28. echo "<td class="td_body"><a href="java script:getRecords({$dane['ip']})">".$dane['ip']."</a></td>";
  29. echo "<td class='td_body'>".$dane['domena']."</td>";
  30. echo "<td class='td_body'>".$dane['ile']."</td>";
  31. echo "</tr>";
  32.  }
  33. echo "</table>";
  34. ?>
  35.  
  36. </div>



JS:

  1. function getRecords(ip)
  2.  
  3. {
  4.  
  5. advAJAX.get({
  6. url : "ip_sort.php?p="+ip+,
  7. tag: "dane"
  8.  
  9. onLoading : function(obj)
  10. {
  11. document.getElementById("dane").innerHTML = "?aduje....";
  12. },
  13.  
  14. onSuccess : function(obj)
  15. {
  16. document.getElementById("dane").innerHTML = obj.responseText;
  17. },
  18. });
  19. }



ip_sort.php

  1. <? include 'connect.php'; ?>
  2.  
  3.  
  4. <table cellpadding=0 cellspacing=0 align=center>
  5. <tr>
  6. <td class="naglo">Data</td>  
  7. <td class="naglo">IP</td>
  8. <td class="naglo">Domena</td>
  9. <td class="naglo">Ile razy wszedl:</td>
  10. </tr>
  11. <?
  12. mb_conn_stat();
  13.  
  14. $ipek = $_GET['ip'];
  15.  
  16. if($ipek)
  17. {
  18.  
  19. $stat_wynik = mysql_query('SELECT * FROM stat WHERE ip='$ipek' ORDER BY id')
  20. or die('Błąd zapytania');
  21. }
  22.  
  23. else
  24.  
  25. {
  26. $stat_wynik = mysql_query('SELECT * FROM stat ORDER BY id')
  27. or die('Błąd zapytania');
  28. }
  29.  
  30. while($dane = mysql_fetch_assoc($stat_wynik))
  31. {
  32. echo '<tr>';
  33. echo '<td class="td_body">'.$dane['data'].'</td>';
  34. echo '<td class="td_body"><a href="java script:void(0)" onclick="java script:ip('.$dane['ip'].')">'.$dane['ip'].'</a></td>';
  35. echo "<td class='td_body'>".$dane['domena']."</td>";
  36. echo "<td class='td_body'>".$dane['ile']."</td>";
  37. echo "</tr>";
  38.  }
  39. echo "</table>";
  40. ?>



Nie wiem co jest zle, prosze o pomoc

Dziękuję bardzo. Poradziłem sobie SAM smile.gif

Jakby ktoś był zainteresowany zrobiłem to tak:

ip_sort.php

  1. <? include "connect.php"; 
  2.  
  3. mb_conn_stat();
  4.  
  5. $ipek = $_GET['ip'];
  6.  
  7. if($ipek == 'wszystkie')
  8. {
  9. $stat_wynik = mysql_query("SELECT * FROM stat ORDER BY id")
  10. or die('Błąd zapytania');
  11. }
  12. else
  13. {
  14. $stat_wynik = mysql_query("SELECT * FROM stat WHERE ip='$ipek' ORDER BY id")
  15. or die('Błąd zapytania');
  16. }
  17.  
  18. ?>
  19.  
  20.  
  21. <table cellpadding=0 cellspacing=0 align=center>
  22. <tr>
  23. <td class="naglo">Data</td>  
  24. <td class="naglo">IP</td>
  25. <td class="naglo">Domena</td>
  26. <td class="naglo">Ile razy wszedl:</td>
  27. </tr>
  28.  
  29. <?
  30.  
  31. while($dane = mysql_fetch_array($stat_wynik))
  32. {
  33. echo "<tr>";
  34. echo "<td class='td_body'>".$dane['data']."</td>";
  35. echo "<td class="td_body"><a href="java script:void(0)" onClick="java script:getRecords('{$dane['ip']}')">".$dane['ip']."</a></td>";
  36. echo "<td class='td_body'>".$dane['domena']."</td>";
  37. echo "<td class='td_body'>".$dane['ile']."</td>";
  38. echo "</tr>";
  39.  }; 
  40.  
  41.  echo "<tr><td class="td_body"><a href="java script:void(0);" onClick="java script:getRecords('wszystkie')">Wszystkie</a></td></tr>";
  42.  
  43.  ?>
  44.  
  45. </table>



sort.js

  1. <?php
  2. function getRecords(str)
  3.  
  4. {
  5.  advAJAX.get({
  6.  
  7. url: "ip_sort.php?ip="+str,
  8. tag: "dane",
  9. timeout: 9000,
  10.  
  11. onTimeout : function()
  12. {
  13. alert('Uplynal czas zadania, spróbuj ponownie!');
  14. },
  15.  
  16. onLoading : function(obj)
  17. {
  18. document.getElementById("dane").innerHTML = "?aduje....";
  19. },
  20.  
  21. onSuccess : function(obj)
  22. {
  23. document.getElementById("dane").innerHTML = obj.responseText;
  24. xmlHttp.overrideMimeType('text/html; charset=ISO-8859-2');
  25. },
  26.  
  27. onError : function(obj) {
  28. alert('Wyst?pi3 b3?d!')
  29. }
  30.  
  31. });
  32. }
  33. ?>


  1. <div id="dane">
  2.  <table cellpadding=0 cellspacing=0 align=center id="dane">
  3. <tr>
  4. <td class="naglo">Data</td>  
  5. <td class="naglo">IP</td>
  6. <td class="naglo">Domena</td>
  7. <td class="naglo">Ile razy wszedl:</td>
  8. </tr>
  9. <?
  10. mb_conn_stat();
  11.  
  12. $stat_wynik = mysql_query("SELECT * FROM stat ORDER BY id")
  13. or die('Błąd zapytania');
  14.  
  15.  
  16. while($dane = mysql_fetch_assoc($stat_wynik))
  17. {
  18. echo "<tr>";
  19. echo "<td class='td_body'>".$dane['data']."</td>";
  20. echo "<td class="td_body"><a href="java script:void(0)" onClick="java script:getRecords('{$dane['ip']}')">".$dane['ip']."</a></td>";
  21. echo "<td class='td_body'>".$dane['domena']."</td>";
  22. echo "<td class='td_body'>".$dane['ile']."</td>";
  23. echo "</tr>";
  24.  }
  25.  
  26.  echo "<tr><td class="td_body"><a href="java script:void(0);" onClick="java script:getRecords('wszystkie')">Wszystkie</a></td></tr>";
  27. echo "</table>";
  28. ?>
  29.  
  30. </div>
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.