2013-07-05 2 views
3

안녕하세요, 저는 PHP에 익숙해 져서 배우기 시작했습니다. 제출 버튼을 누르면 변수 값을 으로 늘리려고합니다.PHP 제출시 변수 값이 1 증가

내 코드 :

<?php 
    $i=0; 
    if($_POST['submit']){ 
     echo $i+1; 
    } 
?> 

감사

+1

어딘가에 변수를 저장해야합니다. 파일, 데이터베이스 또는 심지어 세션. 당신이하고있는 일은 항상 '1'을 보여줄 것입니다. – vee

+0

@vinodadhikary 감사합니다. 시도 할 것입니다 :) – Manan

+1

이 스크립트가 실행 된 후에 변수 $ i는 메모리에서 해제됩니다 (일명 사라졌습니다). 다음에 스크립트를 실행할 때 PHP는 $ i = 0으로 설정하기 전까지 $ i가 무엇인지 알지 못합니다. 따라서 제출을 클릭하면 항상 1을 에코합니다. –

답변

0
var_dump($IsPost = !strcasecmp($_SERVER['REQUEST_METHOD'], 'POST')); 

^이 게시물의 경우를 알려줍니다.

echo ++$i; 

^단위 $I 다음 $I

echo $i++; 

^인쇄 $I을 인쇄 한 후 ['submit']은 예고없이 $_POST에있는 경우 $I

empty($_POST['submit']); // or isset($_POST['submit']); 

^당신을 알려줍니다 증가시킨다.

4

예를 들어 세션에 변수 $ i를 저장해야하므로 양식을 제출할 때 값이 손실되지 않습니다. 또한

(이 대답을 Is PHP or PHP based web framework stateful or stateless? 확인하실 수 있습니다) 스크립트가 실행될 때, 당신이 할 첫번째 일은 당신이 그것을 실행할 때마다 $i = 0; 그래서, 당신은 변수를 다시 초기화 0입니다

session_start(); 

// if your variable is not yet defined, you assigned it with 0 
if (isset($_SESSION['myVariable'])) 
{ 
    $_SESSION['myVariable'] = 0; 
} 

if($_POST['submit']) 
{ 
    echo $_SESSION['myVariable'] +1; 
} 
0
<?php 
if(!isset($_SESSION['i'])) $_SESSION['i'] = 0; 
if(isset($_POST['submit'])){ 
    $_SESSION['i']++; 
} 
echo $_SESSION['i']; 
?> 
1
<?php 
session_start(); 

    if($_POST['submit']){ 
     $_SESSION['i'] = isset($_SESSION['i']) ? ++$_SESSION['i'] : 0; 
     echo $_SESSION['i']; 
    } 
?> 

페이지 사이의 마지막 값을 기억합니다.