разбивка на страницы с использованием php

#php #javascript #mysql #html

#php #javascript #mysql #HTML

Вопрос:

в следующем коде я пытаюсь отобразить 10 продуктов на одной странице, а затем другие продукты на следующей странице. проблема в том, что когда я нажимаю ссылку на страницу 2 внизу, появляется сообщение об ошибке: «пожалуйста, выберите категорию». пожалуйста, помогите мне, в чем проблема в моем коде.

  $SQLstring = "SELECT product_id FROM products LIMIT $offset,$rowsperpage";    
echo "<table border='1' width=500 ><tr><th>Product ID</th>tr>"; 

    while ($Row = mysqli_fetch_assoc($QueryResult))
             {
              $productid = $Row['product_id'];
         echo "<tr><td>$productid</td></tr>";
 }

    echo "</table>"; 
    $range = 3;
   if ($currentpage > 1)
     {  
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";   
    $prevpage = $currentpage - 1;   
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
    } 
  for ($x = ($currentpage - $range);$x < (($currentpage   $range)   1); $x  ) 
    {   
     if (($x > 0) amp;amp; ($x <= $totalpages)) 
    {
    if ($x == $currentpage) 
   {
   echo " [<b>$x</b>] ";  
   } 
   else 
    {     
  echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";      
     }}}                

    mysqli_close($DBConnect);
}
 

Ответ №1:

Ваша проблема заключается в следующем:

 $category=$_POST["categor"];
 

После того, как кто-то нажал на ссылку, $_POST["categor"] будет пустым. Попробуйте $_REQUEST["categor"] создать ссылки следующим образом:

 echo " <a href='{$_SERVER['PHP_SELF']}?category=".$category."amp;currentpage=1'><<</a> "; 
 

или

 echo " <a href='{$_SERVER['PHP_SELF']}?category=".$category."amp;currentpage=$prevpage'><</a> ";
 

Для этого вы можете использовать POST и GET .

Комментарии:

1. Возможно, у вас есть какие-то равные проблемы с ними, не могли бы вы показать нам какой-нибудь код?

2. Tokk я добавил свой html и javascript-код, проблема в том, что кнопки «обновить» и «удалить» теперь не работают для каждого продукта. также на следующей странице отображаются сведения о продуктах на белой странице. не похоже на первую страницу (отформатированную).

3. Ваша функция JS не соответствует ее call => updateproduct(dataSource,divID,categ) vs onClick='updatethisitem("$productid"); . Во-первых, имя отличается, и, кроме того, параметры не совпадают

Ответ №2:

Я думаю, что вижу проблему…

Не похоже, что вы передаете категорию на следующую страницу, возможно, сохраните $_POST[‘categor’] в качестве переменной сеанса, а затем сверьтесь с этим вместо $ _POST .

Кроме того, добавьте категорию, а также номер следующей страницы к URL-адресу

 $cat = isset($_REQUEST['categor']) ? $_REQUEST['categor'] : "none";

if ($currentpage != $totalpages) {   
    $nextpage = $currentpage   1;    
    echo " <a href='{$_SERVER['PHP_SELF']}?cat=$catamp;currentpage=$nextpage'>></a> ";  
    echo " <a href='{$_SERVER['PHP_SELF']}?cat=$catamp;currentpage=$totalpages'>>></a> ";
}
 

Ответ №3:

Сгенерированные вами ссылки не включают эту категорию. Поэтому во всех ваших ссылках обязательно указывайте categor=$category следующим образом:

 echo " <a href='{$_SERVER['PHP_SELF']}?categor=$categoryamp;currentpage=...
 

Редактировать:
Затем, как правильно поняли другие, вам нужно изменить $_POST на $_REQUEST, который я изменил в вашем примере кода.

Надеюсь, это поможет.

Комментарии:

1. кроме того, ему нужно изменить $_POST на $_REQUEST

2. Пришлось понизить ваш голос, потому что, похоже, вы не прочитали $ _POST

3. Вы правы. Для получения переменной необходимо значение $_REQUEST. Я отредактировал.

4. Я думаю, что очень плохо менять код вопрошающих, чтобы он соответствовал вашему ответу! Отредактируйте свой ответ, а не вопрос!

5. Точка зрения принята. Просто пытаюсь помочь им увидеть это в контексте, но вы правы, это, похоже, смещает вопрос в пользу данного ответа. Спасибо за полезную дискуссию.