2012-01-02 7 views
2

내 코드에 도움이 필요합니다. 내가해야 할 일은드롭 다운 목록에서 결과 반향

값 와 드롭 다운리스트를 가지고 있고 당신이 마침내 것 값을 뺀 다른 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 

답변

2

당신의 코드는, 무조건 실행됩니다. 양식이 제출되지 않으면 $ _POST [ 'list'] 값이 없으므로 오류가 발생합니다. 이 게시물을 사용하고 있기 때문에, 수정은 간단하다

... form stuff here... 

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

즉, 코드는 POST가 실제로 수행 된 경우에만 실행 할 수 있습니다. 그러나 나는 실제로 내 데이터베이스에서 가져온 변수 cmeter 내가 테스트를 위해 100의 고정 된 수 준 너무 많은

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

감사 : 그러나, 최대한의 안전을 위해, 당신은 또한 제출 된 데이터의 유효성을 검사해야합니다. newcmeter 값을 데이터베이스에 삽입 할 수 있습니까? – Nicholas

관련 문제