새로고침시 변수값 초기화 채택완료
</p>
<p><?php
$po = 0;
if ( isset($_POST['vs_make']) ) {
$vs_make = $_POST['vs_make'] ?? 0;
if( $vs_make == 1) {
$po = 300;
$vs_make = 0;
$_POST['vs_make'] = 0;
}
}
echo '
$po = '.$po; </p>
<p>?></p>
<p><form method="post">
<button type="submit" name="vs_make" value="1">TEST</button>
</form>
위 예제를 실행해서 TEST를 클릭하면
$po = 300 이라고 정상 동작합니다.
그런데 새로고침을 하면.. 여전히 $po = 300 이라고 나오네요.
제가 기초가 없다보니 이해가 안가서 그러는데
TEST 클릭하면 $po = 300; 후 $vs_make = 0; $_POST['vs_make'] = 0; 모두 0값으로 바꿨으니
새로고침 하면 $po = 0 이어야 하지 않나요?
TEST클릭후엔 새로고침 해도 계속 $po = 300 이라고 나오는데 이유가 뭔가요.
원하는 결과를 얻으려면 어떻게 해야하나요?
답변 4개
페이지를 하나로 해서 혼동될 수 있습니다.
페이지를 2개로 했을 때를 얘기하면, https://m.blog.naver.com/scyan2011/221845086789
ex.
폼 페이지 : a.php (
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
<?php
echo '
$vsmakeA = '.$_POST['vs_make'];
$_POST['vs_make'] = 'B';
echo '
$vsmakeB = '.$_POST['vs_make'];
?>
<form method="post">
<button type="submit" name="vs_make" value="A">TEST</button>
</form>
마르스컴퍼니 말씀듣고 위 코드를 해봤더니 신기하네요
첫시작
$vsmakeA = $vsmakeB = B
TEST 클릭
$vsmakeA = A $vsmakeB = B
새로고침
$vsmakeA = A $vsmakeB = B
$_POST['vs_make'] 값은 B로 이미 바뀐 상태인데 새로고침하면 어째서 다시 A가 되는건가요?
새로고침시에 $_POST['vs_make'] 값을 바꿀수 없나요?
답변에 대한 댓글 2개
[code]
<?php
echo '<br>$vsmakeA = '.$_POST['vs_make']; // $_POST['vs_make'] 값은 A (POST 값이 'A' 로 전송되었기 때문에..)
// <form> ~ </form> 안의 <input name="vs_make"> 값 'A'가 POST 전송됩니다.
//----------------------------
$_POST['vs_make'] = 'B';
echo '<br>$vsmakeB = '.$_POST['vs_make']; // 바로 위 코드로 인해 'B'로 변경
[/code]
<?php
echo '<br>$vsmakeA = '.$_POST['vs_make'];
$_POST['vs_make'] = 'B';
echo '<br>$vsmakeB = '.$_POST['vs_make'];
?>
<form method="post">
<button type="submit" name="vs_make" value="<?php echo $_POST['vs_make'] ?>">TEST</button>
</form>
[/code]
이 경우는 항상 B
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
큰 도움 주셔서 감사합니다.