我的代码需要一些帮助。
我需要做的是有一个带有值的下拉列表 一旦你选择了它,它将减去另一个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
答案 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;
}