ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[php]พบปัญหาการแบ่งหน้าจากการ search
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [php]พบปัญหาการแบ่งหน้าจากการ search  (อ่าน 2015 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
SG14
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 1,397



ดูรายละเอียด เว็บไซต์
« เมื่อ: 12 กันยายน 2012, 13:28:30 »

การค้นหาถูกต้อง แต่พบปัญหาการแบ่งหน้าจากการ search โดยกดไปหน้า 2 หรือหน้าต่อๆไปไม่ได้ค่ะ กดแล้วมันจะเด้งมาบอกว่าให้ระบุคำค้นเหมือนตอนแรกก่อนค้นหา แต่ url นั้นเปลี่ยนตามโค๊ดที่เขียนไว้ค่ะ
โค๊ดมีดังนี้ค่ะ แบ่งเป็นส่วนๆนะคะ แต่อยู่ภายในเพจเดียวกันที่ชื่อ phonebook.php

เป็นฟอร์มการค้นหา

โค๊ด:
<form name="frmSearch" method="post" action="phonebook.php">
<span style="color:#118EEC; font-size:14px;">กรุณาใส่คำค้น</span>
<select name="ddlSelect" id="ddlSelect">
      <option value="name" <? //if($_POST["ddlSelect"]=="name"){echo"selected";}?>>ชื่อพนักงาน</option>
      <option value="nickname" <? //if($_POST["ddlSelect"]=="nickname"){echo"selected";}?>>ชื่อเล่น</option>
      <option value="tel" <? //if($_POST["ddlSelect"]=="tel"){echo"selected";}?>>เบอร์โทรศัพท์ภายใน</option>
  <option value="department" <? //if($_POST["ddlSelect"]=="department"){echo"selected";}?>>แผนก/ฝ่าย</option>
      <option value="level" <? //if($_POST["ddlSelect"]=="level"){echo"selected";}?>>ชั้นที่นั่ง</option>
      </select>
        <input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>">
      <input type="submit" value="ค้นหา">
</form>


อันนี้แสดงข้อมูลค่ะ

โค๊ด:
if($ddlselect == "name"&&$search!="") {
$Qtotal = mysql_query("select * from employee where name like '%$search%'"); //คิวรี่ คำสั่ง
$total = mysql_num_rows($Qtotal); // หาจำนวน record
$pagesize = 6;  // แสดงจำนวนกระทู้ในแต่ละหน้า ทดสอบ
$totalpage = (int)($total/$pagesize);
if(($total%$pagesize)!=0){
$totalpage += 1;
}
// หา record แรกที่จะแสดงของแต่ละหน้า
if(isset($_GET["page"])){
$pageno = $_GET["page"];
$start = $pagesize*($pageno-1);
}else{
$pageno = 1;
$start = 0;
}
$sql ="select * from employee where name like '%$search%' limit $start,$pagesize";
echo "<br /><div class='blue_texthead' align='center' style='color:#118EEC; font-size:14px;'>ผลลัพธ์ของคำว่า [ $search ] </div><br />";
if($num!=0)
{
echo "
<table width=100% border=0 align=center cellpadding=2 cellspacing=0 style=border-color:#262626;>
  <tr bgcolor=#262626 height=30>
   <td align=center  valign='middle' style=font-size:13px; width='10%'><strong style='color:#FFFFFF;'>&nbsp;</td>
    <td align=center  valign='middle' style=font-size:13px; width='25%'><strong style='color:#FFFFFF;'>ชื่อ-นามสกุลพนักงาน</strong></td>
    <td align=center  valign='middle' style=font-size:13px; width='10%'><strong style='color:#FFFFFF;'>ชื่อเล่น</strong></td>
    <td align=center  valign='middle' style=font-size:13px; width='10%'><strong style='color:#FFFFFF;'>เบอร์ภายใน</strong></td>
    <td align=center  valign='middle' style=font-size:13px ;width='25%'><strong style='color:#FFFFFF;'>แผนก/ฝ่าย</strong></td>
<td align=center  valign='middle' style=font-size:13px; width='20%'><strong style='color:#FFFFFF;'>E-mail</strong></td>
    <td align=center  valign='middle' style=font-size:13px; width='10%'><strong style='color:#FFFFFF;'>ชั้นที่นั่ง</strong></td>
  </tr>";
while ($data = mysql_fetch_array($view)) {
$id=$data[id];
$name=$data[name];
$surename=$data[surename];
$tel=$data[tel];
$level=$data[level];
$department=$data[department];
$nickname=$data[nickname];
$email=$data[email];
$pic=$data[pic];
echo "
          <tr style='padding-top:5px;'>
   <td align=center style='font-size:12px; padding-top:7px;'><img src='images/phonebook/$pic' width ='80'></td>
            <td valign='middle' align=center style='font-size:12px; padding-top:7px;'>$name $surename</td>
<td valign='middle' align=center style='font-size:12px; padding-top:7px;'>$nickname</td>
           <td valign='middle' align=center style='font-size:12px; padding-top:7px; color:#FF0000;'><b>$tel</b></td>
            <td valign='middle' align=center style='font-size:12px; padding-top:7px; word-wrap: break-word;'>$department</td>
<td valign='middle' align=center style='font-size:12px'>$email</td>
<td valign='middle' align=center style='font-size:12px'>$level</td>
            </tr>
<tr  valign='top'>
<td colspan='7' align=center style='font-size:11px;color:#118EEC;' valign='top'>...</td></tr>
";
?>
<? } }//End while loop ?>
<?php
echo"<tr><td colspan='7' align=center style='font-size:12px;color:#118EEC;'>";
if(
$pageno>1){
echo "<b class='text'><a href='phonebook.php?page=",$pageno-1,"'>ก่อนหน้า</a></b> |";
}
for($i=1;$i<=$totalpage;$i++){
if($pageno==$i){
echo"<b>".$i."</b> |";
}else{
echo "<b> <a href='phonebook.php?page=$i'>$i</a> </b>|";
}
}
if($pageno<$totalpage){
echo "<b> <a href='phonebook.php?page=",$pageno+1,"'>ถัดไป</a></b>";
}
echo 
"</td></tr></table>"
บันทึกการเข้า

iyaraidea
Newbie
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 6



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 12 กันยายน 2012, 13:33:31 »

โค๊ด:
'phonebook.php?page=$i
ตรงลิงค์ไปหน้าถัดไปไม่มีการส่งค่า $search ไปด้วยนะครับ จากฟอร์มเป็น action แบบ post ลองเปลี่ยนเป็น get ดูครับแล้วก็ส่งค่าคำค้นแบบ get ไปด้วยจะทำให้แบ่งหน้าได้ไม่มีปัญหานะครับ รอท่านอื่นต่อ
บันทึกการเข้า
SG14
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 1,397



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 12 กันยายน 2012, 13:42:33 »

โค๊ด:
'phonebook.php?page=$i
ตรงลิงค์ไปหน้าถัดไปไม่มีการส่งค่า $search ไปด้วยนะครับ จากฟอร์มเป็น action แบบ post ลองเปลี่ยนเป็น get ดูครับแล้วก็ส่งค่าคำค้นแบบ get ไปด้วยจะทำให้แบ่งหน้าได้ไม่มีปัญหานะครับ รอท่านอื่นต่อ

ลองแล้วค่ะ พอเสริชคำว่า ก
พอมอง url มันขึ้นดังนี้ค่ะ phonebook.php?search=%A1&page=2
บันทึกการเข้า

rtee
Newbie
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 89



ดูรายละเอียด
« ตอบ #3 เมื่อ: 12 กันยายน 2012, 13:57:48 »

ลองประกาศค่า $search = $_REQUEST["search"]; ดูดิครับ..
บันทึกการเข้า
SG14
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 1,397



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 12 กันยายน 2012, 13:59:38 »

ขอบคุณค่ะได้แล้วค่ะ พอดีส่งค่า getมาผิด  wanwan017
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์