2016-05-11 73 views
0

は私が仕事のポータルを開発していますし、そのために私は、ページ付けのために試みたが、改ページが動作していないとも私たちは番号をクリックした場合、それは私がミスを把握することはできませんPHPのページネーションは同じページでは機能しませんか?私は私のインデックスページに検索ボックスを持っているところ

何も表示されません、結果は、数字ボタン、表示完璧に機能していますが、それはここでは何も表示されていない番号をクリックが私のコード

<?php 
    if($user->is_logged_in()){ header('Location: /emprdash'); } 
    if(! empty($_SESSION['uid'])) 
    { 
    header('Location: /emdash'); 
    } 
    ?> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-12"> 
       <form action="" method="post" > 
        <div id="adv-search" class="input-group"> 
         <input class="form-control" name="term" id="term" type="text" placeholder="Search for jobs" required /> 
         <div class="input-group-btn"> 
          <div class="btn-group"><button class="btn btn-primary" name="submit" type="submit" value="search" >Search</button></div> 
         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 
    <br/> 
    <br/> 
    <?php 
     if(isset($_POST['submit'])) 
     { 
     $limit=1; 
     $p=$_GET['p']=="" ? 1:$_GET['p']; 
     $start=($p-1)*$limit; 
     $status='active'; 
     $term = $_POST['term'];  
     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $stmt = $db->prepare("SELECT * FROM job WHERE status='active' AND (jdesc LIKE '%".$term."%' OR jtitle LIKE '%".$term."%' OR duration LIKE '%".$term."%' OR budget LIKE '%".$term."%' OR keyskills LIKE '%".$term."%' OR jdate LIKE '%".$term."%' OR edate LIKE '%".$term."%' OR cdexmin LIKE '%".$term."%' OR cdexmax LIKE '%".$term."%') ORDER BY jid DESC LIMIT $start,$limit "); 
     $stmt->execute(); 
     $rows = $stmt->rowCount(); 
     ?> 
    <?php if($rows>=1){ ?> 
    <table class="table table-responsive table-inverse table-hover table-striped" > 
     <thead> 
      <tr class="info"> 
       <th> JobTitle</th> 
       <th>Duration</th> 
       <th>Budget</th> 
       <th>Key Skills</th> 
       <th>Posted Date</th> 
       <th>Expiry Date</th> 
       <th>Experience Minimum</th> 
       <th>Experience Maximum</th> 
       <th></th> 
      </tr> 
     </thead> 
     <tbody> 
      <?php while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
       $jid=$row['jid']; 
       $repl = '<span class="highlight">' . $term . '</span>'; 
       ?> 
      <tr class="success"> 
       <td> 
        <p><a href="/showjob?jid=<?php echo $row['jid']; ?>"><?php echo ucwords(str_ireplace($term, $repl, $row['jtitle'])); ?></a></p> 
       </td> 
       <td> 
        <p><?php echo str_ireplace($term, $repl, $row['duration']); ?></p> 
       </td> 
       <td> 
        <p><?php echo str_ireplace($term, $repl, $row['budget']); ?></p> 
       </td> 
       <td> 
        <p><?php echo str_ireplace($term, $repl, $row['keyskills']); ?></p> 
       </td> 
       <td> 
        <p><?php $jdate=strtotime($row['jdate']); echo str_ireplace($term, $repl, date('d/M/Y',$jdate)); ?></p> 
       </td> 
       <td> 
        <p><?php $edate=strtotime($row['edate']); echo str_ireplace($term, $repl, date('d/M/Y',$edate)); ?></p> 
       </td> 
       <td> 
        <p><?php echo str_ireplace($term, $repl,$row['cdexmin']); ?></p> 
       </td> 
       <td> 
        <p><?php echo str_ireplace($term, $repl,$row['cdexmax']); ?></p> 
       </td> 
       <td> 
        <form method="POST" action=""> 
         <input type="hidden" name="jid" value="<?php echo $jid; ?>" > 
         <center><button type="submit" name="apply" class="btn btn-outlined btn-primary" >Login to Apply</button></center> 
        </form> 
       </td> 
      </tr> 
      <?php 
       } 
       ?> 
     </tbody> 
    </table> 
    <?php } else { 
     echo '<center><div class="well">No results to display</div></center>';} ?> 
    <?php 
     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $stmt = $db->prepare("SELECT * FROM job WHERE status='active' AND (jdesc LIKE '%".$term."%' OR jtitle LIKE '%".$term."%' OR duration LIKE '%".$term."%' OR budget LIKE '%".$term."%' OR keyskills LIKE '%".$term."%' OR jdate LIKE '%".$term."%' OR edate LIKE '%".$term."%' OR cdexmin LIKE '%".$term."%' OR cdexmax LIKE '%".$term."%') "); 
     $stmt->execute(); 
     $count= $stmt->rowCount(); 
     $countP=(ceil($count/$limit)) + 1; 
     $tW=($countP*50) + $countP; 
     echo"<center style='overflow-x:auto;margin-top:10px;padding-bottom:10px;'>"; 
     echo"<div style='width:".$tW."px'>"; 
     for($i=1;$i<$countP;$i++){ 
     $isC=$i==$_GET['p'] ? "b-green":""; 
     echo "<a href='?p=$i'><button class='pgbutton $isC'>$i</button></a>"; 
     } 
     echo"</div>"; 
     echo"</center>"; 
     ?> 
    <?php } ?> 
    <?php 
     if(isset($_POST['apply'])) 
     { 
     $jobid=$_POST['jid']; 
     $_SESSION['url'] = "/applyjob?jid=$jobid"; 
     header("Location:/login"); 
     } 
     ?> 
<style> 
    .pgbutton{ 
    width:45px; 
    margin:0px 5px; 
    } 
</style> 

答えて

0

あるときに、次のページを取得するためのリンク<a href='?p=$i'>をクリックしているので、それが働いていない理由があります。このリンクをクリックすると、フォームを提出しなくなるため、$ _POST値が失われます。

実装を変更する必要があります。ページのURLを変更し、htaccess rewriteを使用してURLに検索語句を格納する必要があります。または、検索語句をセッションに保存します。常に検索語を利用できます。

あなたは隠された入力に

<input type="hidden" name="page" value="1" /> 

変更ページを置きたいかもしれませんがその後、いくつかのJSを

<a href="" data-pagenumber="2" class="page_link">dsfsdf</a> 

リンク - (これはjqueryのを使用しています注意してくださいJavaScriptライブラリ)

<script> 
$(function() { 
$('a.page_link').click(function(event) { 
event.preventDefault(); 

// update page input 
$('input[name="page"]').val($(this).data('pagenumber')); 

$('input[name="page"]').closest('form').submit(); 

return false; 
} 
</script> 
+0

何ソリューションは私の上記のコードの方が良いですし、私はこれを達成する方法 –

+0

これを達成するための方法がたくさんあります。私が見ることができる最も簡単な方法は(あなたのサイトの仕組みがわからないので)ページ番号を使ってフォームに隠れた入力を加えることです。次に、誰かがページ番号リンクをクリックして隠れた入力を更新してからフォームを送信するときに、いくつかのjを追加します。私はuが自由である場合uはコード – Brett

+0

thnksあなたが –

関連する問題