首页 > 解决方案 > 如何用href发送2个值?

问题描述

我正在尝试在整个 href 中发送 2 个值。如果我发送一个值,例如 - id,一切都很好。

这是我的代码:

<select id="options" name="options" method="post">                      
    <option value="opt1">Option one</option>
    <option value="opt2">Option two</option>
    <option value="opt3">Option three</option>
</select>
<br>
<a href="cart.php?action=update&id=<?php echo $row['id']?>">
    <span class="btn btn-success">Change</span>
</a>

$row有我提取的数据,所以我从那里得到我的 id。我还想发送一个在下拉列表中选择的值。我会将这些值发送到此:

if($_GET["action"] == "update") {
    $stat = $_GET['options'];
    $itemID = $_GET['id'];
    $sql = "UPDATE orders
    SET status = '$stat'
    WHERE id = '$itemID'";
    $connect->query($sql);
    header("location:index.php?status=1");
}

然而我$stat的里面什么都没有。

我在互联网上尝试了几乎所有可能的解决方案,但没有一个解决了我的问题。

标签: phphtmlhref

解决方案


要使这项工作在您的情况下工作,您需要使用带有 GET 方法的 FORM。不是选择元素上的方法。

<form method="GET" action="cart.php">
    <input type="hidden" name="action" value="update">
    <input type="hidden" name="id" value="<?php echo $row['id'] ?>">
    <select id="options" name="options">                      
        <option value="opt1">Option one</option>
        <option value="opt2">Option two</option>
        <option value="opt3">Option three</option>
    </select>
    <button class="btn btn-success" type="submit">Change</button>
</form>

选择选项 1 将提交给cart.php?action=update&id=1&options=opt1.

另一种选择是使用 POST:

<form method="POST" action="cart.php?action=update&id=<?php echo $row['id'] ?>">
    <select id="options" name="options">                      
        <option value="opt1">Option one</option>
        <option value="opt2">Option two</option>
        <option value="opt3">Option three</option>
    </select>
    <button class="btn btn-success" type="submit">Change</button>
</form>

然后在你的 PHP 中:

$action = $_POST['action'];
$options = $_POST['options'];
//etc

请记住,您很容易受到SQL 注入的影响,应该使用准备好的语句


推荐阅读