methosk Posted March 8, 2009 Share Posted March 8, 2009 Well, I like using the Iframe cause its easy, quick, and usually works decently (even tho not the greatest, or even decent thing to do, it has always worked with effort), but I want to lose it, to use php or javascript (preferably PHP if possible, but JS if necessary, or Ajax, etc etc). This is a version of my script using Iframe- http://fivehyphen.com/1024/index.php?p=matches Everything seems all right, but here is a similar version using - http://fivehyphen.com/1024/index.php?p=roster <?php echo "Roster: <br>"; ?> <br> <div> <?php include("roster2.php") ?> </div> <link href="style.css" rel="stylesheet" type="text/css"> <?php /* Place code to connect to your DB here. */ mysql_connect("", "", "") or die("Could not connect: " . mysql_error()); mysql_select_db(""); $tbl_name=""; //your table name // How many adjacent pages should be shown on each side? $adjacents = 3; /* First get total number of rows in data table. If you have a WHERE clause in your query, make sure you mirror it here. */ $query = "SELECT COUNT(*) as num FROM $tbl_name"; $total_pages = mysql_fetch_array(mysql_query($query)); $total_pages = $total_pages[num]; /* Setup vars for query. */ $targetpage = "roster2.php"; //your file name (the name of this file) $limit = 10; //how many items to show per page $page = $_GET['page']; if($page) $start = ($page - 1) * $limit; //first item to display on this page else $start = 0; //if no page var is given, set start to 0 /* Get data. */ $sql = "SELECT * FROM $tbl_name WHERE clan='1' ORDER by type<'0' LIMIT $start, $limit"; $result = mysql_query($sql); /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is page - 1 $next = $page + 1; //next page is page + 1 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. $lpm1 = $lastpage - 1; //last page minus 1 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class=\"pagination\">"; //previous button if ($page > 1) $pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>"; else $pagination.= "<span class=\"disabled\">« previous</span>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter </span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\"> $counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } } } //next button if ($page < $counter - 1) $pagination.= "<a href=\"$targetpage?page=$next\">next »</a>"; else $pagination.= "<span class=\"disabled\">next »</span>"; $pagination.= "</div>\n"; } ?> <?php echo "<table border='1' align='center'><tr><td width='100'>Username:</td> <td width='100'>First Name:</td> <td width='100'>Last Name:</td> <td width='100'>Gender:</td> </tr></table>"; while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "<table border='1' align='center'><tr><td width='100'> {$row['username']} </td>" . "<td width='100'> {$row['first_name']} </td>" . "<td width='100'> {$row['last_name']} </td>" . "<td width='100'> {$row['gender']} </td>" . "</tr></table>"; // Your while loop here } ?> <table align="center" border="0"> <tr> <td> <?=$pagination?> </td> </tr> </table> Also, want to throw a shout out to RusselReal for helping me set up the Iframes properly in the first place, but my SEO wants me to avoid Iframes as much as possible :/ And, an advanced thanks to anyone who takes the time to help me out, thank you Link to comment https://forums.phpfreaks.com/topic/148488-how-to-beat-the-iframe-what-can-i-do-in-php-to-avoid-it/ Share on other sites More sharing options...
kickstart Posted March 8, 2009 Share Posted March 8, 2009 Hi Sounds like a job for Ajax. Set up a small ajax routine to retrieve the data for a particular page, and when that returns you put it into your certral div that you want to change. If you want to avoid hammering your server as much you could have a div per page, and once populated with ajax, paging back to that page just hides the other pages and unhides the div for that page. All the best Keith Link to comment https://forums.phpfreaks.com/topic/148488-how-to-beat-the-iframe-what-can-i-do-in-php-to-avoid-it/#findComment-779780 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.