#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)
vsonClick='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. Точка зрения принята. Просто пытаюсь помочь им увидеть это в контексте, но вы правы, это, похоже, смещает вопрос в пользу данного ответа. Спасибо за полезную дискуссию.