Ciao.
prova questo:
Codice PHP:
<?php
$db=mysql_connect('localhost','','') or die('Error connecting to the server');
mysql_select_db('page') or die('Error selecting database');
$result=mysql_query('SELECT name FROM news') or die ('Error performing query');
function createJavaScript($dataSource,$arrayName='rows'){
// validate variable name
if(!is_string($arrayName)){
die('Invalid variable name');
}
// initialize JavaScript string
$javascript='<script>var '.$arrayName.'=[];';
// check if $dataSource is a file or a result set
if(is_file($dataSource)){
// read data from file
$row=file($dataSource);
// build JavaScript array
for($i=0;$i<count($row);$i++){
$javascript.=$arrayName.'['.$i.']="'.trim($row[$i]).'";';
$javascript.="\n";
}
}
// read data from result set
else
{
$i = 0;
$tempOutput='';
while($row=mysql_fetch_array($dataSource,MYSQL_NUM))
{
$tempOutput.= $arrayName.'['.$i.']'."=\"".trim($row[0]).'";';
$tempOutput.= "\n";
$i++;
}
$javascript.= $tempOutput;
}
$javascript.='</script>'."\n";
// return JavaScript code
return $javascript;
}
echo createJavaScript($result,'rows');
?>
<html>
<head>
<title>Paginating Records with JavaScript</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript">
var recsPage,page,numPages;
// set number of records per page
recsPage=4;
// calculate number of pages
numPages=Math.round(rows.length/recsPage);
// define createDivs function
createDivs=function(){
// create records containing <div>
var recsDiv=document.createElement('div');
recsDiv.id='records';
// create paging link containing <div>
var linksDiv=document.createElement('div');
linksDiv.id='paginglinks';
// insert <div> elements into document structure
document.body.appendChild(recsDiv);
document.body.appendChild(linksDiv);
}
// define displayRecords function
displayRecords=function(page){
var recsDiv=document.getElementById('records');
if(!recsDiv){return;}
var div=document.createElement('div');
div.id='records';
if(!page){page=1;}
// extract records from rows array
for(var i=(page-1)*recsPage;i<((page-1)*recsPage)+recsPage;i++){
if(rows[i]){
// insert records as paragraph elements
var p=document.createElement('a');
p.href='pippo.htm';
p.appendChild(document.createTextNode(rows[i]));
div.appendChild(p);
}
}
// replace old records node with new records node
recsDiv.parentNode.replaceChild(div,recsDiv);
}
// define generateLinks function
generateLinks=function(page){
var linksDiv=document.getElementById('paginglinks');
if(!linksDiv){return;}
var div=document.createElement('div');
div.id='paginglinks';
// assignn default value to array pointer
if(!page){page=1;}
// create previous link
if(page>1){
var a=document.createElement('a');
a.href='#';
a.id=parseInt(page)-1;
a.style.fontFamily='Verdana';
a.style.fontSize='11px';
a.style.fontWeight='bold';
a.appendChild(document.createTextNode('<<Previous'));
div.appendChild(a);
a.onclick=function(){
// update record list
displayRecords(this.id);
// update paging links
generateLinks(this.id);
}
}
// create numbered links
for(var i=1;i<=numPages;i++){
if(i!=page){
// create paging links
div.appendChild(document.createTextNode(' '));
var a=document.createElement('a');
// assign paging links attributes
a.href='#';
a.id=i;
a.style.fontFamily='Verdana';
a.style.fontSize='11px';
a.style.fontWeight='bold';
a.appendChild(document.createTextNode(i));
// append link to <div> container
div.appendChild(a);
// append blank space
div.appendChild(document.createTextNode(' '));
// assign onclick event handler to paging links
a.onclick=function(){
// update records list
displayRecords(this.id);
// update paging links
generateLinks(this.id);
}
}
else{
// the current page is not linked
var span=document.createElement('span');
span.style.fontFamily='Verdana';
span.style.fontSize='11px';
span.style.fontWeight='bold';
span.appendChild(document.createTextNode(i));
div.appendChild(span);
}
}
// create next link
if(page<numPages){
var a=document.createElement('a');
a.href='#';
a.id=parseInt(page)+1;
a.style.fontFamily='Verdana';
a.style.fontSize='11px';
a.style.fontWeight='bold';
a.appendChild(document.createTextNode('Next>>'));
div.appendChild(a);
a.onclick=function(){
// update records list
displayRecords(this.id);
// update paging links
generateLinks(this.id);
}
}
// replace old links node with new links node
linksDiv.parentNode.replaceChild(div,linksDiv);
}
// execute functions when page is loaded
window.onload=function(){
if(document.getElementById&&document.createElement){
// create containing <div> elements
createDivs();
// display records
displayRecords(page);
// generate paging links
generateLinks(page);
}
}
</script>
<style type="text/css">
/*define some styles*/
p {
font: bold 16px Arial, Helvetica, sans-serif;
color: #000;
}
#records {
width: 50%;
background: #ccf;
font: normal 12px "Arial", Helvetica, sans-serif;
color: #000;
border: 1px solid #000;
}
#records a { display:block;
margin-top: 5px;
}
</style>
</head>
<body>
<h1>Records Listing</h1>
</body>
</html>