Witam smile.gif Po dwóch godzinnych zmaganiach z tym skryptem postanowiłem poprosić tutaj o pomoc.

O co chodzi? Mam taki skrypt stronicowania w Ajaxie, który działa poprawnie bo sprawdzałem. Mój skrypt ma wyświetlać filmy dodane w różnych kategoriach i po wejściu w kategorię ma być właśnie to stronicowanie. Udało mi się zrobić aby po wejściu wyświetliły się filmy z danej kategorii. Nawigacją pojawia się prawidłowo, lecz nie mogę zmienić strony w żaden sposób sadsmiley02.gif

O to mój kod w pliku HTML:
  1. <?php
  2. if ($_GET['user']) {
  3. // do txtResult ładowana jest treść (w moim przypadku są to filmy) i pasek z nawigacją
  4. echo "<div id=\"txtResult\" align=\"center\" style=\"margin-top:10; background-color:#999999; font:Arial, Helvetica, sans-serif; color:#333333; height:345px; border: 2px solid;\">
  5. <input type='hidden' id='username' value='".$_GET['user']."'>
  6. ";
  7. ?>
  8. <script>
  9. username = document.getElementById('username').value;
  10. htmlData('paging.php', 'p=1', 'user=username');
  11.  
  12. </script>
  13. <?php echo "
  14. </div>
  15. ";
  16. } else { ?>
  17. <div id="dane" align="center" style="margin-top:10; background-color:#999999; font:Arial, Helvetica, sans-serif; color:#333333; height:345px; border: 2px solid;">
  18. <br />
  19. <table width="400" style="font-size:16px; border:0;">
  20. <tr> <td colspan="2">Wybierz bibliotekę filmów:</td>
  21. </tr>
  22. <tr> <td width="200"><a href="youtube.php?user=rafal"><img src="folder.png" width="18" height="18" border="0"/></a> Kategoria 1</td>
  23. <td width="200"><a href="youtube.php?user=damian"><img src="folder.png" width="18" height="18" border="0"/></a> Kategoria 2</td>
  24. </tr>
  25.  
  26. </table>
  27. </div>
  28. <? } ?>


tutaj mam plik ajax_reg.js :
  1. function GetXmlHttpObject(handler)
  2. {
  3. var objXMLHttp=null
  4. if (window.XMLHttpRequest)
  5. {
  6. objXMLHttp=new XMLHttpRequest()
  7. }
  8. else if (window.ActiveXObject)
  9. {
  10. objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  11. }
  12. return objXMLHttp
  13. }
  14.  
  15. function stateChanged()
  16. {
  17. if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  18. {
  19. // txtResult will be filled with new page
  20. document.getElementById("txtResult").innerHTML = xmlHttp.responseText
  21. }
  22. else {
  23. //alert(xmlHttp.status);
  24. }
  25. }
  26.  
  27. function htmlData(url, qStr, user)
  28. {
  29. if (url.length==0)
  30. {
  31. document.getElementById("txtResult").innerHTML = "";
  32. return;
  33. }
  34.  
  35. xmlHttp = GetXmlHttpObject();
  36.  
  37. if (xmlHttp==null)
  38. {
  39. alert ("Browser does not support HTTP Request");
  40. return;
  41. }
  42. username=document.getElementById("username").value;
  43. url=url+"?"+qStr;
  44. url=url+"&user="+username;
  45. url=url+"&sid="+Math.random();
  46. xmlHttp.onreadystatechange = stateChanged;
  47. xmlHttp.open("GET",url,true) ;
  48. xmlHttp.send(null);
  49. }


i plik, który pobiera z bazy odpowiednie filmy z wybranej kategorii:


  1. <style type="text/css" >
  2. table.data {
  3. background-color:#fff;
  4. color:#213243;
  5. }
  6. .data th {background-color:gray; color:#ffffff}
  7. .pagingDiv { width:270px; height:20px}
  8. .pNo {float:left; width:30px; margin-left:3px; margin-right:3px; border:0px solid gray;}
  9. .pNo a {text-decoration:none; color:#FFFFFF;}
  10. </style>
  11.  
  12. <?php
  13.  
  14. // Database connection
  15. require_once "config.php";
  16. // Number of records to show per page
  17. $recordsPerPage = 2; # 0
  18.  
  19. $user = $_GET['user'];
  20.  
  21. // default startup page
  22. $pageNum = 1;
  23.  
  24. if(isset($_GET['p'])) {
  25. $pageNum = $_GET['p'];
  26. settype($pageNum, 'integer');
  27. }
  28.  
  29. $offset = ($pageNum - 1) * $recordsPerPage;
  30.  
  31. $query = "SELECT * FROM im_movies WHERE movie_kat='".$user."' LIMIT $offset, $recordsPerPage";
  32.  
  33. $result = mysql_query($query) or die('Mysql Err. 1');
  34.  
  35.  
  36.  
  37. # 2 change/add columns name
  38. while($row = mysql_fetch_assoc($result)) {
  39.  
  40. $tem=explode("http://www.youtube.com/watch?v=", $row['movie_adres']);
  41. $adres1 = $tem[1];
  42. $tem2=explode("&feature=related", $adres1);
  43. $adres = $tem2[0];
  44.  
  45. $data .= "<object width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/".$adres."&hl=pl_PL&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/".$adres."&hl=pl_PL&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object>&nbsp;&nbsp;&nbsp;&nbsp;";
  46.  
  47. }
  48.  
  49.  
  50. # Update this query with same where clause you are using above.
  51. $query = "SELECT movie_id FROM im_movies WHERE movie_kat='".$user."'"; # 3
  52.  
  53. $result = mysql_query($query) or die('Mysql Err. 2');
  54. $row = mysql_num_rows($result);
  55. $numrows = $row; # 4
  56.  
  57. $maxPage = ceil($numrows/$recordsPerPage);
  58.  
  59. $nav = '';
  60.  
  61. for($page = 1; $page <= $maxPage; $page++) {
  62. if ($page == $pageNum) {
  63. $nav .= "<div class=\"pNo\">$page</div>";
  64. }
  65. else
  66. {
  67. $nav .= "<div class=\"pNo\"><a href=\"java script:htmlData('paging.php','p=$page', 'user=$user')\">$page</a></div>";
  68. }
  69. }
  70.  
  71. if ($pageNum > 1) {
  72.  
  73. $page = $pageNum - 1;
  74. $prev = "<a href=\"java script:htmlData('paging.php','p=$page', 'user=$user')\"><strong><</strong></a>";
  75.  
  76. $first = "<a href=\"java script:htmlData('paging.php','p=1', 'user=$user')\"><strong><<</strong></a>";
  77. }
  78. else {
  79. $prev = '<strong> </strong>';
  80. $first = '<strong> </strong>';
  81. }
  82.  
  83. if ($pageNum < $maxPage) {
  84. $page = $pageNum + 1;
  85. $next = "<a href=\"java script:htmlData('paging.php','p=$page', 'user=$user')\"><strong>></strong></a>";
  86.  
  87. $last = "<a href=\"java script:htmlData('paging.php','p=$maxPage', 'user=$user')\"><strong>>></strong></a>";
  88. }
  89. else {
  90. $next = '<strong></strong>';
  91. $last = '<strong> </strong>';
  92. }
  93.  
  94.  
  95. echo $data;
  96.  
  97. echo '</div>';
  98.  
  99. echo "<div align=\"center\" style=\"background-color:#999999; font:Arial, Helvetica, sans-serif; color:#333333; height:22px; border: 1px dashed;\">
  100. <div class=\"pNo\">$first</div>
  101. <div class=\"pNo\">$prev</div>
  102. $nav
  103. <div class=\"pNo\">$next</div>
  104. <div class=\"pNo\">$last</div></div>
  105. <br />";
  106.  
  107. ?>
  108.  
  109.  


Cały kod stronicowania jest stąd: http://www.satya-weblog.com/2007/03/paging...l-and-ajax.html

Do funkcji htmlData dodałem argument user, w którym zapisane jest, którą kategorię oglądamy.

Bardzo prosiłbym o pomoc. W JS jestem zielony wstydnis.gif
Jak coś nie jasno napisałem to proszę pytać.

Pozdrawiam
DeemR

edit :

Udało mi się rozwiązać problem smile.gif

Powinno być tak:
  1. username=document.getElementById('username').value;
  2. htmlData('paging.php', 'p=1', 'user='+username);
  3. //alert(username);
  4. </script>

i tak:
  1. function htmlData(url, qStr, user)
  2. {
  3. //alert(user);
  4. if (url.length==0)
  5. {
  6. document.getElementById("txtResult").innerHTML = "";
  7. return;
  8. }
  9.  
  10. xmlHttp = GetXmlHttpObject();
  11.  
  12. if (xmlHttp==null)
  13. {
  14. alert ("Browser does not support HTTP Request");
  15. return;
  16. }
  17.  
  18. url=url+"?"+qStr;
  19. url=url+"&"+user;
  20. url=url+"&sid="+Math.random();
  21. //alert(url);
  22. xmlHttp.onreadystatechange = stateChanged;
  23. xmlHttp.open("GET",url,true) ;
  24. xmlHttp.send(null);
  25. }