我有一个函数可以创建一个URL,具体取决于客户从表单页面选择的产品和数量。
该功能如下所示:
function getPurchaseLink($token, $csvfile, $force_platform = "", $quantity = 1){
// Code to create url
}
每个产品都有自己的表单,其中包含选择下拉列表数量列表。
问题是当我对其进行硬编码时,数量如下: $ quantity = 1; 并以我提出的形式行动:
<form method="post" action="<?php echo getPurchaseLink($TOKEN, $csvfile, $force_platform = "", $quantity); ?>">
我提交表格时有效。
但这不是我想要的方式。我想获取选择框选项的数量值。 比如 $ quantity = $ _POST ['quantity'];
但是当页面加载时我得到了一个未定义的错误。 因此,如果我无法从选择框中获取数量值,则无法提交表单。
这是我的整个表格:
<?php
require 'script_purchase.php';
$csvfile = 'purchaselinks.csv';
//echo getPurchaseLink($token = '1Opp2p11M', $csvfile, $force_platform = "", $quantity = 99) . '<br/>';
$quantity = $_POST['quantity'];
?>
<html>
<body>
<form method="post" action="<?php echo getPurchaseLink('1Opp2p11M', $csvfile, $force_platform = "", $quantity); ?>">
<div class="comp">
<label class="font_12" for="quantity"># of PCs</label><br/>
<select class="font_12" id="quantity" name="quantity">
<option value="10">10 PCs</option>
<option value="25">25 PCs</option>
<option value="50">50 PCs</option>
<option value="99">99 PCs</option>
</select>
</div>
<div class="div_small"><span class="font_12"><br/>for</span></div>
<input name="submit" id="button_addtocart" type="submit" value="Submit" class="checkout" />
</form>
</body>
</html>
答案 0 :(得分:2)
您可能希望在使用之前检查'quantity'
数组中是否存在$_POST
。像这样:
$quantity = array_key_exists('quantity', $_POST) ? $_POST['quantity'] : 0;
或其他一些默认值。问题是,第一次呈现页面时,POST数据中没有任何内容。
您还应该应用某种验证(以防万一有人想滥用您的脚本)。看看http://www.php.net/manual/en/function.filter-input.php