使用下面的代码我选择一个数量,然后检查我选择了数量的项目,然后点击添加按钮提交表格。
<form name="addtocart" method="post" action="checkbox.php">
//foreach loop below loops through array of items fetched from the db
<?php foreach($result2 as $row) { ?>
<select name="qty">
<?php for ($i=0; $i < $row['prd_quantity'] + 1 ; $i++) { ?>
<option value = "<?php echo $i; ?>" ><?php echo $i; ?></option>;
<?php }?>
</select>
<input type="checkbox" name="checkitem[]" id="addtocart" value="<?php echo $row['prd_id'] ?>" optional /></p>
<?php } ?>
enter code here
<input type="submit" value="Make Order"/>
</form>
选择后,在select元素上说8,$ ordqty下面仍然输出0.我在想它与循环和$_POST
超全局有关但是
checkitems []
的工作原理。帮助将不胜感激。谢谢。
$ordqty = $_POST['qty'];
//$ordqty returns 0.
以下是$row['prd_quantity'] = 8
:
<select name = "qty">
<option value="0">0</option>
;
<option value="1">1</option>
;
<option value="2">2</option>
;
<option value="3">3</option>
;
<option value="4">4</option>
;
<option value="5">5</option>
;
<option value="6">6</option>
;
<option value="7">7</option>
;
<option value="8">8</option>
;
</select>
答案 0 :(得分:2)
在我看来,如果您的数据库返回的行不止一行,那么您的响应中会有多个select
元素,所有元素都被命名为qty
。这可以解释为什么表单没有发布正确的值。你检查过了吗?
尝试以下方面的内容:
<select name="qty[<?php echo $row['prd_id']; ?>]">
<?php for ($i=0; $i < $row['prd_quantity'] + 1 ; $i++) { ?>
<option value = "<?php echo $i; ?>" ><?php echo $i; ?></option>;
<?php }?>
</select>
这将发布按产品ID键入的一系列选择。
感谢您使用已生效的产品ID索引所选商品数量的数组。
要访问qty []数组的元素,我知道这可能会更好,但我做到了:
//Array below holds the values of the quantities entered
$new_ord_qty = $_POST['qty'];
//Array below holds product ids -- in the HTML code -- prodid is the name of a hidden inputfield inside the foreach loop whose value i have set to $row['prd_id']
$prod_id_array = $_POST['prodid'];
for($i=0; $i<count($checked_items_array);$i++) {
for ($i=0; $i < count($new_ord_qty); $i++) {
//Array below holds the values of the quantities entered with the prod_id_array elements as //the indices
$ord_qty = $new_ord_qty[$prod_id_array[$i]];
// Here echo will output an array of the quantities entered for the checked items
echo $ord_qty;
}
}
谢谢大家。
答案 1 :(得分:1)
我认为问题可能是您将复选框作为数组checkitems[]
传递,但您将数量作为单个qty
传递可能值得将数量名称更改为{{ 1}}
显然,您可能还需要更新代码以处理数组作为数组并将其与checkitem值匹配。
答案 2 :(得分:1)
问题应该是您有多个具有相同名称的选择,我假设POST变量将显示最后一个,仍然设置为0.您可以使用id后缀,如qty_0,qty_1下拉列表。
您可以发布细分受众群生成的HTML代码吗?这可能会有所帮助。