Witam (IMG:
style_emoticons/default/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 (IMG:
style_emoticons/default/sadsmiley02.gif)
O to mój kod w pliku HTML:
<?php
if ($_GET['user']) {
// do txtResult ładowana jest treść (w moim przypadku są to filmy) i pasek z nawigacją
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;\"> <input type='hidden' id='username' value='".$_GET['user']."'>
";
?>
<script>
username = document.getElementById('username').value;
htmlData('paging.php', 'p=1', 'user=username');
</script>
</div>
";
} else { ?>
<div id="dane" align="center" style="margin-top:10; background-color:#999999; font:Arial, Helvetica, sans-serif; color:#333333; height:345px; border: 2px solid;">
<br />
<table width="400" style="font-size:16px; border:0;">
<tr> <td colspan="2">Wybierz bibliotekę filmów:</td>
</tr>
<tr> <td width="200"><a href="youtube.php?user=rafal"><img src="folder.png" width="18" height="18" border="0"/></a> Kategoria 1</td>
<td width="200"><a href="youtube.php?user=damian"><img src="folder.png" width="18" height="18" border="0"/></a> Kategoria 2</td>
</tr>
</table>
</div>
<? } ?>
tutaj mam plik ajax_reg.js :
function GetXmlHttpObject(handler)
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
// txtResult will be filled with new page
document.getElementById("txtResult").innerHTML = xmlHttp.responseText
}
else {
//alert(xmlHttp.status);
}
}
function htmlData(url, qStr, user)
{
if (url.length==0)
{
document.getElementById("txtResult").innerHTML = "";
return;
}
xmlHttp = GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
username=document.getElementById("username").value;
url=url+"?"+qStr;
url=url+"&user="+username;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true) ;
xmlHttp.send(null);
}
i plik, który pobiera z bazy odpowiednie filmy z wybranej kategorii:
<style type="text/css" >
table.data {
background-color:#fff;
color:#213243;
}
.data th {background-color:gray; color:#ffffff}
.pagingDiv { width:270px; height:20px}
.pNo {float:left; width:30px; margin-left:3px; margin-right:3px; border:0px solid gray;}
.pNo a {text-decoration:none; color:#FFFFFF;}
</style>
<?php
// Database connection
require_once "config.php";
// Number of records to show per page
$recordsPerPage = 2; # 0
$user = $_GET['user'];
// default startup page
$pageNum = 1;
$pageNum = $_GET['p'];
}
$offset = ($pageNum - 1) * $recordsPerPage;
$query = "SELECT * FROM im_movies WHERE movie_kat='".$user."' LIMIT $offset, $recordsPerPage";
# 2 change/add columns name
$tem=explode("http://www.youtube.com/watch?v=", $row['movie_adres']); $adres1 = $tem[1];
$tem2=explode("&feature=related", $adres1); $adres = $tem2[0];
$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> ";
}
# Update this query with same where clause you are using above.
$query = "SELECT movie_id FROM im_movies WHERE movie_kat='".$user."'"; # 3
$numrows = $row; # 4
$maxPage = ceil($numrows/$recordsPerPage);
$nav = '';
for($page = 1; $page <= $maxPage; $page++) {
if ($page == $pageNum) {
$nav .= "<div class=\"pNo\">$page</div>";
}
else
{
$nav .= "<div class=\"pNo\"><a href=\"java script:htmlData('paging.php','p=$page', 'user=$user')\">$page</a></div>";
}
}
if ($pageNum > 1) {
$page = $pageNum - 1;
$prev = "<a href=\"java script:htmlData('paging.php','p=$page', 'user=$user')\"><strong><</strong></a>";
$first = "<a href=\"java script:htmlData('paging.php','p=1', 'user=$user')\"><strong><<</strong></a>";
}
else {
$prev = '<strong> </strong>';
$first = '<strong> </strong>';
}
if ($pageNum < $maxPage) {
$page = $pageNum + 1;
$next = "<a href=\"java script:htmlData('paging.php','p=$page', 'user=$user')\"><strong>></strong></a>";
$last = "<a href=\"java script:htmlData('paging.php','p=$maxPage', 'user=$user')\"><strong>>></strong></a>";
}
else {
$next = '<strong></strong>';
$last = '<strong> </strong>';
}
echo "<div align=\"center\" style=\"background-color:#999999; font:Arial, Helvetica, sans-serif; color:#333333; height:22px; border: 1px dashed;\"> <div class=\"pNo\">$first</div>
<div class=\"pNo\">$prev</div>
$nav
<div class=\"pNo\">$next</div>
<div class=\"pNo\">$last</div></div>
<br />";
?>
Cały kod stronicowania jest stąd:
http://www.satya-weblog.com/2007/03/paging...l-and-ajax.htmlDo 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 (IMG:
style_emoticons/default/wstydnis.gif)
Jak coś nie jasno napisałem to proszę pytać.
Pozdrawiam
DeemR
edit :
Udało mi się rozwiązać problem (IMG:
style_emoticons/default/smile.gif)
Powinno być tak:
username=document.getElementById('username').value;
htmlData('paging.php', 'p=1', 'user='+username);
//alert(username);
i tak:
function htmlData(url, qStr, user)
{
//alert(user);
if (url.length==0)
{
document.getElementById("txtResult").innerHTML = "";
return;
}
xmlHttp = GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
url=url+"?"+qStr;
url=url+"&"+user;
url=url+"&sid="+Math.random();
//alert(url);
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true) ;
xmlHttp.send(null);
}
Ten post edytował DeemR 3.05.2010, 17:50:44