Php提交表格行动

时间:2013-01-29 21:40:59

标签: php forms get submit

我有一个函数可以创建一个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>

1 个答案:

答案 0 :(得分:2)

您可能希望在使用之前检查'quantity'数组中是否存在$_POST。像这样:

$quantity = array_key_exists('quantity', $_POST) ? $_POST['quantity'] : 0;

或其他一些默认值。问题是,第一次呈现页面时,POST数据中没有任何内容。

您还应该应用某种验证(以防万一有人想滥用您的脚本)。看看http://www.php.net/manual/en/function.filter-input.php