php - 如何将循环内选定的数据库值发送到php中的另一个页面

标签 php mysql database

我在 php 中制作了一个表单,在表单内部有一个循环,可以从数据库中提取多本书的多个值(img、名称、可用性等),我制作了一个表格来向用户显示这些值,并在显示后表中的这些数据我在循环内创建了一个问题按钮,以便每本书都有其问题按钮。

我的问题是我必须只检索用户点击问题按钮的那本书的 ID。我尝试将其存储在 cookie 中,但它发送了显示的第一本书的 id,然后我尝试了 get 方法,但这导致发送了屏幕 id 上显示的最后一本书。但我想要的是它应该发送用户选择的书籍的ID

展示书籍


    echo "<form action='issue.php' method='get'>";
                while ($row= mysqli_fetch_array($result)) {

                    echo "<div id='img_div' style='background-color:#fff;'> ";
                    echo "<img src='books/".$row['image']."'>";
                    // echo "</div>";<div id='text'>
                    $isbn=$row['isbn'];

                    echo "<input type='hidden' name='isb' value='$isbn' />";
                    echo "&nbsp;&nbsp;&nbsp;&nbsp;<table>";


                    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;NAME</td><td>&nbsp;&nbsp;&nbsp;&nbsp;".$row['name']."</td></tr>";
                    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;AVAILABILITY</td><td>&nbsp;&nbsp;&nbsp;&nbsp;".$row['availabilty']."</td></tr>";
                    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;CATEGORY</td><td>&nbsp;&nbsp;&nbsp;&nbsp;".$row['category']."</td></tr>";
                    echo "<tr><td colspan='2'>

                    <button type='submit' name='issue'>issue</button></td></tr>";
                    echo "</table>";
                    echo "</div><br/>";
                    if (isset($_GET['issue'])) {
                        # code...
                        $bookid=$isbn;
                    setcookie("bid",$bookid);
                        if(!isset($_COOKIE['bid'])){
                            echo "COOKIE NOT SET";
                        }
                        else{ 
                            echo "COOKIE SET SUCCESSFULLY";
                        }
                    }

issue.php(我想在其中发送ID)


    if(isset($_GET['issue'])){
                $bookid=$_GET['isb'];

    $dbser="localhost";
                $use="[redacted]";  
                $pasw="[redacted]";
                $db="[redacted]";
                $con=mysqli_connect($dbser,$use,$pasw,$db);
                mysqli_select_db($con,$db)or die("db not connected");
                    $userid=$_COOKIE['id'];
                    $id=$_SESSION['user']['username'];
                    $query = "select id from user_account where username='$id'";
                    $result=mysqli_query($con,$query);
                    $row= mysqli_fetch_assoc($result);
                        $uid=$row['id'];



                    echo "$uid";
                    echo "<br/>";
                    echo "$bookid";
                            $query = "INSERT INTO issue (bookid, userid)
                 VALUES ('$bookid', '$uid')";
             mysqli_query($con, $query)or die(mysqli_error($con));

最佳答案

您需要的是一种选择单行然后将其与表单一起提交的方法。这可以通过在表单内的表格中添加单选按钮来完成。用户将选中他们想要的项目的单选按钮,然后单击提交按钮。

下面是该代码在您的页面中的示例。

展示书籍

<form action='issue.php' method='get'>
while ($row= mysqli_fetch_array($result)) {
    $isbn=$row['isbn'];

    echo "&nbsp;&nbsp;&nbsp;&nbsp;<table>";

    echo "<tr>";
    echo "<td><input type=\"radio\" name=\"optradio\" value=\"".$isbn."\"></td>";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;NAME</td><td>&nbsp;&nbsp;&nbsp;&nbsp;".$row['name']."</td>";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;AVAILABILITY</td><td>&nbsp;&nbsp;&nbsp;&nbsp;".$row['availabilty']."</td>";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;CATEGORY</td><td>&nbsp;&nbsp;&nbsp;&nbsp;".$row['category']."</td>";
    echo "</tr>";

    echo "</table>";
}

echo "<button type='submit' name='issue'>issue</button>";
echo "</form>";

这里是一个 HTML 代码片段,因此您可以看到 PHP 代码将在 HTML 中输出什么。单击下面的“运行代码片段”即可查看预览。

<form action='issue.php' method='get'>
    <table>
      <tr>
        <td><input type="radio" name="optradio" value="1"></td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;NAME</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;name1</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;AVAILABILITY</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;availability1</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;CATEGORY</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;category1</td>
      </tr>
      <tr>
        <td><input type="radio" name="optradio" value="2"></td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;NAME</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;name2</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;AVAILABILITY</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;availability2</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;CATEGORY</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;category2</td>
      </tr>
    </table>
<button type='submit' name='issue'>issue</button>
</form>

然后在 issue.php 中,您将查找 $_GET['optradio'] 以获取所选值。

if(isset($_GET['issue'])){
            $bookid=$_GET['optradio'];

$dbser="localhost";
...
...
...

关于php - 如何将循环内选定的数据库值发送到php中的另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58923195/

相关文章:

php - error_log防止显示 echo

php - 本地 Apache 服务器 mod_rewrite/pretty 链接问题

database - 零停机时间(或接近零)数据库架构更改

php - 查询和子查询加入 laravel

mysql - 文本字段中的乌尔都语值以及如何插入数据库?

php - 更新字段之前检查重复项

php - 使用 Php & JQuery 获取 MySQL 记录

php如何查找给定节点的所有子节点

php - 搜索数千条记录(属性)并返回数据

mysql - 检查 MySQL 中的最小行数