1

我有一个函数可以根据客户从表单页面中选择的产品和数量创建一个 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>
4

1 回答 1

2

您可能想在使用它之前检查数组'quantity'内部是否存在。$_POST像这样:

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

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

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

于 2013-02-07T22:38:09.933 回答