เซียน php ช่วยหน่อยครับเรื่อง Page ที่แสดงครับ

เริ่มโดย tcool, 05 กุมภาพันธ์ 2009, 12:43:57

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

tcool

<?php if ($p 1) echo('<a href="xxx.php?p='.($p 1).(!empty($_GET['search']) ? '&amp;search='.urlencode($_GET['search']) : '').'">&lt;&lt; Prev</a>'); ?>
<?php
for ($i 1$i<=$ps$i++) {
if ($i == $p)
echo(' <b>['.$i.']</b> ');
else
echo(' <a href="xxx.php?p='.($i).(!empty($_GET['search']) ? '&amp;search='.urlencode($_GET['search']) : '').'">'.$i.'</a> ');
}
?>

<?php if ($p $ps) echo('<a href="xxx.php?p='.($p 1).(!empty($_GET['search']) ? '&amp;search='.urlencode($_GET['search']) : '').'">Next &gt;&gt;</a>'); ?>

ตั้งไว้ให้มันแสดง 100 กระทู้/หน้า

ใช้ Code แบบนี้ในการแสดงหน้าแต่ตอนนี้คิดว่ามันไม่ work แล้วเพราะว่าถ้าหน้ามี 200 หน้า มันก็จะแสดงเลย 1 ถึง 200 เลย อยากให้มันเป็นแบบ 1 ... 3 4 [5] 6 7 ... 200 อะไรประมาณนี้ต้องทำไงหร่อครับ

figaro

อย่าปล่อยให้ความโลภครอบงำ

Synchronize

#2
อันนี้ของผมคิดเองเขียนเองนะครับ ไม่รู้ถูกหลักการเค้ารึป่าว ผมก็ งงๆ เหมือนกันว่า คนอื่นเค้าใช้วิธีไหน  :-[

อันนี้ function ของ php

<?php

function 
pv($__p$__t$__url)
{
$m1 = array();
for($cx 1$cx <= min(4$__t); $cx++)
$m1[] = $cx;

$mn2 $__p 2;
$mx2 min($__p 2$__t);
$m2 = array();
if($mn2 && $mx2 0)
for($cx $mn2$cx <= $mx2$cx++)
$m2[] = $cx;

$mn3 $__t 3;
$m3 = array();
if($mn3 && $__t 0)
for($cx $mn3$cx <= $__t$cx++)
$m3[] = $cx;

$_pv_array array_unique(array_merge($m1$m2$m3));
asort($_pv_array);

$_pv_array array_values($_pv_array);

$__data '<ul class="pagecontrol">';
$_pv_count count($_pv_array);
for($cx 0$cx $_pv_count$cx++)
{
if($cx && $_pv_array[$cx 1] < $_pv_array[$cx] - 1)
$__data .= '<li class="split">...</li>';
$__data .= '<li class="page' . ($__p == $_pv_array[$cx] ? ' selected' '') . '"><a href="' str_replace('[p]', ($_pv_array[$cx] + 0), $__url) . '">' $_pv_array[$cx] . '</a></li>';
}

return $__data '</ul>';
}
?>



เวลาใช้งาน ก็เอาค่าใส่ลงไปแบบนี้

<?php
echo pv(5200'data.php?p=[p]');
?>


คือเอา ค่าของหน้าปัจจุบันใส่ param ตัวแรก เอาจำนวนหน้าทั้งหมด ใส่ param ตัวที่ 2 ตัวที่สามก็ใส่ url ของลิงค์

ค่าที่ได้ มันจะออกมาเป็น ul li นะครับ คือมาเป็น list ถ้าจะแสดงผลได้สวยงามต้อง เขียน css คุมด้วยแบบนี้

ul.pagecontrol {
margin: 10px 0 5px 0;
padding: 0;
}
ul.pagecontrol ul {
margin: 0; padding: 0;
}

ul.pagecontrol li {
display: inline;
}

ul.pagecontrol li.page a {
border: 1px solid #c2cee1;
background-color: white;

padding: 3px 6px;
margin: 2px 3px;
}

ul.pagecontrol li.page a:hover
{
color: #0a3b85;
background-color: #e7ecf3;
}

ul.pagecontrol li.selected a {
border: 1px solid #0a3b85;
background-color: #e7ecf3;
color: #0a3b85;

font-weight: bold;

padding: 3px 6px;
margin: 2px 0;
}

ul.pagecontrol li.split {
padding: 3px 6px;
margin: 2px 0;
}



ของที่ผมใช้ปัจจุบัน มันยุ่งยากไปมั้ยเนี่ย

:P  :-[  :-X
เนื้อหาความรู้น่าสนใจ ใหม่ๆ
[direct=https://develop.un-no.com/w3/docs/clear-float-in-div]เทคนิคการแก้ไขปัญหาจากการ float ซ้อน float แล้ว clear[/direct]

[direct=https://service.un-no.com/unbbz]ทำเว็บได้ด้วยตัวเองฟรี ด้วยระบบเว็บสำเร็จรูป unbbz , เว็บธรรมดา , เว็บบอร์ด , เว็บขายของ ทำได้หมดเลย[/direct]