将下拉菜单的值传递给另一个页面

时间:2014-11-21 19:29:49

标签: php html mysql

我正在创建一个自定义购物车,当点击“添加到购物车”链接时,该值为 在下拉菜单中选择的数量,产品ID将传递到addCart页面。我对产品ID传递没有任何问题,但数量选择下拉菜单是由库存中可用的金额动态填充的。我无法获取所选数量并将其传递到下一页。我特别想知道如何从下拉菜单中获取选择的值到addCart页面。

购物页面:

echo "<table class='tableadmin2'> 
<tr>
<td class='td2'><b>Add&nbsp;to&nbsp;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&nbsp</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:&nbsp;&nbsp;</b><br>
            <select id='orderIn_quantity' name='orderIn_quantity'>
                <option value='Select'> Select </option> 
                " . $y . "                                              
            </select>
 </td>
</tr>";

}     echo“”;

addCart页面:

<?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'] . " &nbsp</td>
<td class='td2'>" . $orderIn_quantity . " &nbsp</td>
<td class='td2'>$" . $total . ".00 &nbsp</td>
</tr>";
echo"</table>";

&GT?;

1 个答案:

答案 0 :(得分:0)

这里的问题是你的方法。由于您尝试使用带有URL参数的链接作为“添加到购物车”方法,因此如果不在发送前修改链接的URL,则无法知道数量。

看起来你可能对$ _GET和$ _POST之间的区别有点困惑,以及何时使用哪一个。 $ _GET用于通过URL参数传递变量,而$ _POST用于通过表单将数据发布到页面。

在您当前的实现中,这一行:

 <input type='hidden' id='prod' value='" . $row6['ip_id'] . "' /></td>

没用,因为你没有提交表单,所以这个隐藏变量永远不会被发送到任何地方(同样,&lt; / td&gt;标记似乎不会在任何地方打开,如果你打算在一个表单,它需要一个名称属性)。

同样,您的&lt; select&gt;因为同样的原因菜单没用。

我建议你改变你的方法来使用而不是。因此,购物页面上的代码可能如下所示:

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:&nbsp;&nbsp;</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'];

您当然可以设置提交按钮的样式,使其看起来比默认设置更好。

还有其他方法可以实现这一点,您将在继续尝试时学习,包括使用链接触发表单提交而不是按钮。