私は PHP にはかなり慣れていませんが、プログラミングに関する以前の知識とインターネット検索を適用して、ここまでたどり着きました。
私はステップバイステップのフォームエントリを作成しようとしています.1ページごとに基準が入力され、フォーム全体が入力されたときにのみデータベースが更新されます. 基本的な機能が動作するようになったら、フォームをさらに装飾する予定です。
現時点では name 変数が入力されていますが、第 2 ステージの送信後、URL がステージ 3 に更新されても、エントリの第 1 ステージにループバックします。このため、情報をデータベースに解析できません。
私は PHP v5 を使用しています。AJAX を使用してこの問題を解決しましたが、このインスタンスでは使用していません。
あなたの時間と努力に感謝します。
<?php
$stage = $_GET['stage'];
//Starting on form 1
$stage = 'one';
//get form details
$name = $_POST['name'];
$surname = $_POST['surname'];
/* ---- Checking if you submitted and if you were on form one THEN set the form the stage2 in order to display the next form ---- */
if (isset($_POST['submitStage1']) && $stage == 'one') {
$stage = 'two';
echo "checking sumbit from stage1";
}
if (isset($_POST['submitStage2']) && $stage == 'two') {
$stage = 'three';
echo "checking submit from stage2 going to 3";
}
if (isset($_POST['submitStage3']) && $stage == 'three') {
$stage = 'three';
echo "Adding to database";
}
?>
<?php
if ($stage == 'one') {
echo $stage;
?>
<div style="width:100%; margin-bottom: 20px;"> Step_001</div>
<form method="post" action="addperson.php?stage=2">
<input name="name" type="text" />
<input name="submitStage1" type="submit" />
</form>
<?php
}
?>
<?php
if ($stage == 'two') {
echo $stage;
?>
<div style="width:100%; margin-bottom: 20px;"> Step_002</div>
<form method="post" action="addperson.php?stage=3">
<input name="surname" type="text" />
<input name="submitStage2" type="submit" />
</form>
<?php
}
?>
<?php if ($stage == 'three') { echo $stage;
echo "Adding to database";
$name = mysql_real_escape_string($_POST['name']); $surname = mysql_real_escape_string($_POST['surname']);
// Add this product into the database now
$sql = mysql_query("INSERT INTO testpeople (name, surname)
VALUES('$name','$surname')") or die (mysql_error());
exit(); } ?>