PHP不存储选中复选框输入的值


PHP not storing values of selected checkbox inputs

我正在使用数据库和PHP制作一个假工具租赁程序。这段代码从数据库获取信息,将其存储在一个名为$records的变量中,然后用该信息创建一个表。我试图从列tool_id存储值作为复选框的值,并将所选值传递给数组以制作购物车,但该数组始终为空。

function drawTable($records) {
    $count = 0;
    $info = getToolInfo($records);
    echo "<table style='text-align:center;margin:0 auto;border:1px solid black'>";
    echo "<tr style='border:1px solid black'>";
    echo "<td style='border:1px solid black'>Add to cart</td>";
    echo "<td style='border:1px solid black'>Tool Name</td>";
    echo "<td style='border:1px solid black'>Price</td>";
    echo "<td style='border:1px solid black'>Availability</td>";
    echo "<td style='border:1px solid black'>More info</td>";
    echo "</tr>";
    foreach ($records as $record) {
        echo "<tr stlye='border:1px solid black'>";
        echo "<td style='border:1px solid black'><input type='checkbox' name='cart[]' value=".$record['tool_id']."></td>";
        echo "<td style='border:1px solid black'>".$record['name']."</td>";
        echo "<td style='border:1px solid black'>$".$record['price_total']."</td>";
        echo "<td style='border:1px solid black'>".$record['status']."</td>";
        echo "<td style='border:1px solid black'><button tpye='button' onclick='var info=".json_encode($info[$count]).";displayPopup(info);'>More Info</button></td>";
        echo "</tr>";
        $count++;
    }
    echo "</table>";
}

这段代码是我试图访问另一个名为cart.php的文件中的数组,但数组总是空的。

session_start(); 
if (!isset($_SESSION['cart'])) {
    $_SESSION['cart'] = array();
}
$cart = $_GET['cart'];
foreach ($cart as $tool) {
    $_SESSION['cart'][] = $tool;
    echo $tool . "<br/>";
}

表单完成工作。试试下面的代码,其中表格被包装在一个表单中,购物车数据将在提交时发送到cart.php。

echo "<form method='get' action='cart.php'><table style='text-align:center;margin:0 auto;border:1px solid black'>";
echo "<tr style='border:1px solid black'>";
    echo "<td style='border:1px solid black'>Add to cart</td>";
    echo "<td style='border:1px solid black'>Tool Name</td>";
    echo "<td style='border:1px solid black'>Price</td>";
    echo "<td style='border:1px solid black'>Availability</td>";
    echo "<td style='border:1px solid black'>More info</td>";
echo "</tr>";
foreach($records as $record){
    echo "<tr style='border:1px solid black'>";
        echo "<td style='border:1px solid black'><input type='checkbox' name='cart[]' value=".$record['tool_id']."></td>";
        echo "<td style='border:1px solid black'>".$record['name']."</td>";
        echo "<td style='border:1px solid black'>$".$record['price_total']."</td>";
        echo "<td style='border:1px solid black'>".$record['status']."</td>";
        echo "<td style='border:1px solid black'><button tpye='button' onclick='var info=".json_encode($info[$count]).";displayPopup(info);'>More Info</button></td>";
    echo "</tr>";
    $count++;
} 
 echo "<tr><td><input type='submit' value='Got to cart'></td></tr></table></form>";

如果购物车复选框字段不为空,则使用form,添加method =" POST"和action为cart.php。提交表单后,在cart.php中通过POST['cart']获取表单字段。