我正在创建一个自定义购物车,当点击“添加到购物车”链接时, 在下拉菜单中选择的数量和产品 ID 将传递到 addCart 页面。我对传递产品 ID 没有问题,但数量选择下拉菜单由可用库存量动态填充。我无法获取选定的数量并将其传递到下一页。我特别想知道如何将从下拉菜单中选择的值抓取到 addCart 页面。
购物页面:
echo "<table class='tableadmin2'>
<tr>
<td class='td2'><b>Add to Cart: </b></td>
<td class='td2'><b>Product Information: </b></td>
<td class='td2'><b>Product Photo: </b></td>
<td class='td2'><b>Select Amount: </b></td>
</tr>";
$display6="SELECT *
FROM in_product LIMIT $start, $pagerows; " ;
$displayResult6 = @mysqli_query($dbhandle, $display6)
or die(mysqli_error($dbhandle));
while($row6 = mysqli_fetch_array($displayResult6, MYSQLI_ASSOC)) {
$i = 1;
$x = $row6['ip_stock'];
$y = " ";
for($i = 1; $i <= $x; $i++) {
$y .= "<option value=' . $i . '> $i </option>";
}
echo "<tr>
<input type='hidden' id='prod' value='" . $row6['ip_id'] . "' /></td>
<td class='td2'><a href='addcartInstate.php?ip_id=" . $row6['ip_id'] . "'>Add To Cart </a></td>
<td class='td2'><strong> " . $row6['ip_name'] . " </strong><br> " . $row6['ip_desc'] . " <br> $" . $row6['ip_price'] . " </td>
<td class='td2'><img alt='first' src=" . $row6['ip_image'] . " width='300' height='250'></td>
<td class='td2'><br>
<b>Quantity: </b><br>
<select id='orderIn_quantity' name='orderIn_quantity'>
<option value='Select'> Select </option>
" . $y . "
</select>
</td>
</tr>";
} echo “”;
添加购物车页面:
<?php
echo "<table class='table10'>
<tr>
<td class='td2'><b>Product Name: </b></td>
<td class='td2'><b>Quantity: </b></td>
<td class='td2'><b>Price: </b></td>
</tr>";
if (isset($_GET['ip_id'])) {
$ip_id = $_GET['ip_id'];
} elseif (isset($_POST['ip_id'])) {
$ip_id = $_POST['ip_id'];
}
if (isset($_GET['orderIn_quantity'])) {
$orderIn_quantity = $_GET['orderIn_quantity'];
} elseif (isset($_POST['orderIn_quantity'])) {
$orderIn_Quantity = $_POST['orderIn_quantity'];
}
$q = "SELECT *
FROM in_product WHERE ip_id = '$ip_id'; " ;
$result = @mysqli_query($dbhandle, $q)
or die(mysqli_error($dbhandle));
$rows = mysqli_fetch_array($result);
$total = $rows['ip_price'] * $orderIn_quantity;
echo "<tr>
<input type='hidden' name='ip_id' value='" . $rows['ip_id'] . "' />
<td class='td2'>" . $rows['ip_name'] . "  </td>
<td class='td2'>" . $orderIn_quantity . "  </td>
<td class='td2'>$" . $total . ".00  </td>
</tr>";
echo"</table>";
?>
最佳答案
这里的问题是您的方法。由于您尝试使用带有 URL 参数的链接作为添加到购物车的方法,因此如果不在发送前修改链接的 URL,则无法知道数量。
看起来您可能对 $_GET 和 $_POST 之间的区别以及何时使用哪个感到有点困惑。 $_GET 用于通过 URL 参数传递变量,而 $_POST 用于通过表单将数据发布到页面。
在您当前的实现中,这一行:
<input type='hidden' id='prod' value='" . $row6['ip_id'] . "' /></td>
是无用的,因为你没有提交表单,所以这个隐藏变量永远不会发送到任何地方(另外, 标签似乎没有在任何地方打开,如果你打算在一个形式,它需要一个名称属性)。
同样,出于同样的原因,您的
我建议您更改方法以使用 a 而不是 .因此,您在购物页面上的代码可能如下所示:
echo "<tr>
<form method='post' action='addcartInstate.php' name='addToCartForm' id='addToCart Form'>
<input type='hidden' name='ip_id' id='prod' value='" . $row6['ip_id'] . "' />
<td class='td2'><input type='submit' name='submit' value='Add To Cart' /></td>
<td class='td2'><strong> " . $row6['ip_name'] . " </strong><br> " . $row6['ip_desc'] . " <br> $" . $row6['ip_price'] . " </td>
<td class='td2'><img alt='first' src=" . $row6['ip_image'] . " width='300' height='250'></td>
<td class='td2'><br>
<b>Quantity: </b><br>
<select id='orderIn_quantity' name='orderIn_quantity'>
<option value='Select'> Select </option>
" . $y . "
</select>
</td>
</form>
</tr>";
然后在addcartInstate.php文件中:
$ip_id = $_POST['ip_id'];
$orderIn_Quantity = $_POST['orderIn_quantity'];
当然,您可以设置提交按钮的样式,使其看起来比默认按钮更好。
还有其他方法可以实现这一点,您将在继续试验时学习这些方法,包括使用链接而不是按钮来触发表单提交。
关于php - 将下拉菜单的值传递给另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27068862/