1

我对 PHP 还很陌生,但我已经应用了我以前的编程知识,以及互联网搜索让我走到了这一步。

我正在尝试逐步输入表单,其中逐页输入标准,并且仅在填写整个表单后才更新数据库。我计划在获得基本功能后进一步修饰表单。

截至目前,名称变量正在填充,但是在提交第二阶段后,它会循环回到输入的第一阶段,尽管 URL 更新到阶段 3,因此无法将信息解析到数据库中。

我正在使用 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(); } ?>
4

2 回答 2

0

你有这个:

//Starting on form 1
$stage = 'one';

在您访问$_GET变量之后,这意味着它每次都会覆盖它。尝试将它放在 get 之前,它将作为默认值,注意不要用空白覆盖它$_GET['stage']

于 2012-04-04T13:43:07.113 回答
0

消除

$stage = 'one' ;

代替

$stage = $_GET['stage'];

$stage = isset($_GET['stage']) ? $_GET['stage'] : "one" ;

谢谢

:)

于 2012-04-04T13:51:13.133 回答