You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将<td>标签中的ISBN值传递给PHP变量?

解决方案

方法1:通过URL GET参数传递ISBN

修改循环里的<a>标签,把ISBN作为查询参数拼接到view.php的URL中:

<td><a class="borrow-button" href="view.php?isbn=<?php echo urlencode($row['ISBN']); ?>">BORROW</a></td>

在view.php中通过$_GET['isbn']获取ISBN值,必须做安全处理避免SQL注入:

// view.php 核心代码
if(isset($_GET['isbn'])){
    $isbn = $_GET['isbn'];
    // 使用mysqli预处理语句执行查询
    $stmt = $conn->prepare("SELECT * FROM books WHERE ISBN = ?");
    $stmt->bind_param("s", $isbn); // "s"表示参数为字符串类型
    $stmt->execute();
    $result = $stmt->get_result();
    $book = $result->fetch_assoc();
    
    // 此处编写书籍详情的展示逻辑
}

方法2:通过POST表单传递ISBN

如果不想把ISBN暴露在URL中,可采用表单提交的方式:

在循环的每行内添加一个表单:

<td>
    <form action="view.php" method="POST">
        <input type="hidden" name="isbn" value="<?php echo $row['ISBN']; ?>">
        <button type="submit" class="borrow-button">BORROW</button>
    </form>
</td>

在view.php中通过$_POST['isbn']获取值,同样需做安全处理:

// view.php 核心代码
if(isset($_POST['isbn'])){
    $isbn = $_POST['isbn'];
    // 使用预处理语句执行查询
    $stmt = $conn->prepare("SELECT * FROM books WHERE ISBN = ?");
    $stmt->bind_param("s", $isbn);
    $stmt->execute();
    $result = $stmt->get_result();
    $book = $result->fetch_assoc();
    
    // 此处编写书籍详情的展示逻辑
}

关键注意事项

  • 绝对不能直接把用户传入的参数拼进SQL语句,必须用预处理语句防范SQL注入。
  • GET参数要通过urlencode()处理特殊字符,保证URL格式合法。
  • 要先检查$_GET['isbn']或$_POST['isbn']是否存在,避免出现Undefined index错误。

内容的提问来源于stack exchange,提问作者jericviernes30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 17:17:20