세션 추적을 사용하여 한 페이지에서 다음 페이지로 제출 된 데이터를 보존하는 여러 페이지 양식을 표시하려고합니다. $_POST['stage']
은 표시 할 양식을 결정합니다. 각 양식에는 $stage
변수를 1 씩 증가시키는 값이있는 숨겨진 입력 형식이 있지만 첫 번째 양식의 데이터를 제출할 때 $stage
의 값은 다음 양식이 표시되지 않는 것처럼 유지됩니다. 세션 수는 php.ini
에서 사용할 수 있습니다. 페이지의 상단에 session_start()
를 추가PHP에서 다중 페이지 양식에 세션 추적 사용
<?php
session_start();
//Determine which integer to assign to the stage
if (($_SERVER['REQUEST_METHOD'] == 'GET') || (!isset($_POST['stage']))) {
$stage = 1;
} else {
$stage = (int) $_POST['stage'];
}
//Save any submitted data
if ($stage > 1) {
foreach ($_POST as $key => $value) {
$_SESSION[$key] = $value;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My Form Example</title>
</head>
<body>
<?php if ($stage == 1) { ?>
<form action='<?php echo $_SERVER['SCRIPT_NAME'] ?>' method='post'>
<label for='firstField'>First field:</label>
<input type='text' name='first_field /><br />
<input type='hidden' name='stage' value='<?php echo $stage + 1 ?>' />
<input type='submit' value='Next' />
</form>
<?php } else if ($stage == 2) { ?>
<form action='<?php echo $_SERVER['SCRIPT_NAME'] ?>' method='post'>
<label for='secondField'>Second field:</label>
<input type='text' name='second_field /<br />
<input type='hidden' name='stage' value='<?php echo $stage + 1 ?>' />
<input type='hidden' value='Done' />
</form>
<?php } ?>
</body>
</html>
입니다에는 끝 따옴표 없다지만 표시되지 않는 것 어떤 이유로 질문을 올릴 때까지. 내 백틱 후 첫 번째 코드 줄입니다. – Gimme5