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

时间:2016-11-04 03:36:57

标签: php session checkbox

我正在使用数据库和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/>";
}

2 个答案:

答案 0 :(得分:1)

表单完成工作。请尝试以下代码,其中表格包装在表格中,购物车数据将在提交时发送到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>";

答案 1 :(得分:0)

如果购物车复选框字段不为空,请使用表单,添加方法=&#34; POST&#34;和cart.php的行动。提交表单后,通过POST [&#39; cart&#39;]在cart.php中获取表单字段。