Как смоделировать нажатие кнопки - PullRequest
0 голосов
/ 11 июня 2019

Это моя программа нумерации страниц:

     if(isset($_POST['view']))
 {
     $per_page = 20;
     if(isset($_GET['page'])) {
         $page = $_GET['page'];
     } else {
         $page = 1;

     }

     $start = $per_page * $page;
     $start = $start - $per_page;

     if(isset($_GET['seller']) ) {
         $seller = $_GET['seller'];
     } else {
         $seller = ($_POST['seller']);

     }

     echo $seller."_".$start;

     $query = "SELECT Kala.mark ,Kala.sharhe_kala, Kala_forooshande.date From Kala Join Kala_forooshande ON Kala.id_kala=Kala_forooshande.id_kala WHERE Kala_forooshande.id_forooshande=(SELECT id_forooshande From Forooshande where forooshande='". $seller ."')  LIMIT $start , $per_page";
     $result = mysqli_query($db,$query);

     $query2 = "SELECT COUNT(*) as total FROM Kala Join Kala_forooshande ON Kala.id_kala=Kala_forooshande.id_kala WHERE Kala_forooshande.id_forooshande=(SELECT id_forooshande From Forooshande where forooshande='". $seller ."')";
     $result2 = mysqli_query($db,$query2);

     if ($result->num_rows > 0) {


         echo " <form method='post' enctype='multipart/form-data'>
         <table class='blueTable'><thead><tr><th>شماره</th><th>شرح کالا</th><th>مارک</th><th>تاریخ</th></tr></thead>";


         while ($row = $result->fetch_assoc()) {
             $tarikh=gregorian_to_jalali((substr($row["date"],0,4)),(substr($row["date"],5,2)),(substr($row["date"],8,2)));
             $j=$start++;
             echo "<tr><td>" . $j . "</td><td>" . $row["sharhe_kala"] . "</td><td>" . $row["mark"] . "</td><td>" .$tarikh[0]."-".$tarikh[1]."-".$tarikh[2] . "</td></tr>";
         }
         echo "</table></form> ";


         $total = mysqli_fetch_assoc($result2);
         $total_page = (ceil($total['total'] / $per_page));
         echo "<table class='pagination'>";
         $prev = $page - 1;
         if ($page <= 1) {
             echo "
            <td> << </td>
        ";
         } else {
             echo "
            <td><a href=\"?page=" . $prev . "\"> << </a></td>
        ";
         }

         for ($i = 1; $i <= $total_page; $i++) {

             if ($i == $page) {
                 echo "
                <td class='active'>$i</td>";
             } else {
                 echo "
                <td><a href=\"?page=" . $i . "&seller=".$seller."\">" . $i . "</a></td>";
             }
         }
         $next = $page + 1;
         if ($page >= $total_page) {
             echo "
             <td>>></td>
        ";
         } else {
             echo "
             <td><a href=\"?page=$next\"> >></a></td>
        ";
         }
         echo "</table>";
     }

  }

Проблема в том, что когда пользователь нажимает на страницу 2, тег <a> отправляет <a href=\"?page=" . $i . "&seller=".$seller."\">", чтобы увидеть страницу № 2, но он не работает из-за предложения if if(isset($_POST['view']) в начале

Так что это работает только для первой страницы, по которой нажимается кнопка просмотра.

Можно ли отправить значение кнопки в ссылке для имитации события нажатия кнопки?

1 Ответ

1 голос
/ 11 июня 2019

На основании вашего комментария к вопросу:

я хочу, чтобы меня отображали, только если пользователь нажал на кнопку просмотра

Тогда вам нужно больше кнопок просмотра. Замените ваши ссылки их собственными формами, которые публикуют значения, ожидаемые вашим серверным кодом. Так что вместо этого:

echo "
<td><a href=\"?page=" . $i . "&seller=".$seller."\">" . $i . "</a></td>";

У вас может быть что-то вроде этого:

echo "
<td>
    <form method=\"post\">
        <input type=\"hidden\" name=\"page\" value=\"" . $i "\" />
        <input type=\"hidden\" name=\"seller\" value=\"" . $seller "\" />
        <input type=\"submit\" name=\"view\" value=\"" . $i "\" />
    </form>
</td>";

Вы можете использовать CSS для придания стиля вашим кнопкам, чтобы они выглядели как ссылки, если вы предпочитаете. Такие инструменты, как Boostrap, делают это очень просто, просто добавляя классы, такие как "btn btn-link", например, к любому интерактивному элементу.

Но, в конечном счете, если вы хотите, чтобы ваши ссылки отправляли форму, сделайте их формами.

...