使用PHP在下拉列表中未设置变量

时间:2012-02-07 17:28:52

标签: php validation

我正在使用Google API创建一个货币计算器,但似乎没有设置从下拉框中选择的变量。

我创建一个数组来容纳3种货币:

<?php
$options = array(
    'usd' => 'USD',
    'eur' => 'EUR',
    'gbp' => 'GBP'
);
?>

用户选择表格中显示的上述值之一。

<form action="" method="post ">
    <p>
        Amount:<br />
        <input type="text" name="amount" />
    </p>
    <p>
        From:<br />
        <input type="text" name="from" />
    </p>
    <p>
        To:<br />
        <select name="position">      
            <?php foreach ($options as $value => $text): ?>                                     
                <option value="<?php echo $value ?>" 
                        <?php echo ($v['position'] == $value) ? 'selected="selected"' : '' ?> >
                            <?php echo $text ?>
                </option>
            <?php endforeach; ?>
        </select>
    </p>
    <p>
        <input type="submit" name="submit" />
    </p>
</form>

以下函数用于确定是否已设置变量,并在结果中回显以确保我的发现。

if (isset($_POST['amount'], $_POST['from'], $_POST[$value])) {
    $amount = (int) $_POST['amount']; 
    $from = $_POST['from']; 
    $value = $_POST['value'];

    echo $amount;
    echo $from;
    echo $value; 
//    echo $text;
//    echo $selected; 
//    echo $options;  
//    echo $v; 
    exit();

我可以成功回显$amount$from变量,但不明白为什么我可以从下拉框中获取$value变量。

我已经尝试回应所有变量无济于事,这让我相信问题在于我在表单本身的编码。

任何明显的问题都会浮现在脑海中?

提前致谢。

1 个答案:

答案 0 :(得分:1)

$v在哪里定义?另外,我不明白为什么你要检查$_POST[$value]是否存在,然后设置$value = $_POST['value'] ...以及$value在变更之前是什么?什么元素的名称为value?你不应该抓住$_POST['position']吗?

$_POST['position']是一个变量,它总是包含选择菜单的哪个值,但我没有看到你实际在任何地方使用它。