2016-11-04 55 views
0

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

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/>"; 
} 
+0

为什么你不使用窗体? – RxV

+0

我试过把它放在

但它仍然没有工作。 –

+0

您是否尝试提交表单并在会话中存储值? – RxV

回答

0

如果购物车复选框字段不为空,请使用表单,将方法添加为“POST”,并将操作添加为cart.php。提交表单后,通过cart.php中的POST ['cart']获取表单字段。

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>"; 
+0

感谢这工作。对于任何人在未来看到这个问题,我的问题是我每次做了一个复选框而不是将它们全部放在一个表单中时,我就做了一个表单。 –