2012-01-02 48 views
2

我需要一些幫助,我的代碼。從dropdownlist迴應結果

我需要做的是有一個值爲 的下拉列表,一旦您選擇該值,它將減去另一個已刪除的值 並最終回顯新值。 這是我到目前爲止嘗試過的,但有些錯誤我無法解決。

<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 

回答

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; 
} 
+0

非常感謝,但是我從我的數據庫實際上採取的變量cmeter我給它的100固定數量進行測試。是否可以在數據庫中插入值newcmeter。 – Nicholas 2012-01-02 18:24:54