从下拉列表中回应结果

时间:2012-01-02 18:07:41

标签: php drop-down-menu

我的代码需要一些帮助。

我需要做的是有一个带有值的下拉列表  一旦你选择了它,它将减去另一个delcared值 最后回应出新的价值。  这是我到目前为止所尝试的,但是有些错误是我无法解决的。

<html>
<form action="" method="post">
<select name="list" id="list">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
</html>
<?php
$options = array(
    '1' => 1,
    '2' => 2,
);

$value = $_POST['list'];
$cmeter = 100;

$newcmeter = $cmeter - $options[$value] ;
 echo $newcmeter;
?>

错误是:

[03-Jan-2012 02:02:03] PHP Notice:  Undefined index: list in C:\www\abc\hello.php on line 16

[03-Jan-2012 02:02:03] PHP Notice:  Undefined index:  in C:\www\abc\hello.php on line 19

1 个答案:

答案 0 :(得分:2)

您无条件地运行代码,无论该表单是否已提交。当表单尚未提交时,没有$ _POST ['list']值,因此错误。由于你使用的是POSt,修复很简单:

... form stuff here...

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   ... your php processing stuff here ...
}

只有在实际执行POST时才会使代码运行。但是,为了最大限度地提高安全性,您还应验证提交的数据:

if (isset($_POST['list'])) {
    $value = (int)$_POST['list'];
} else {
    $value = 0; // default value;
}