0

PHPマルチステップフォームに問題があります。1ページで異なるフォーム間の切り替えを実行する必要があります。このページでは、次の場合に切り替えます。

 $_SESSION["profilo"]= $_POST["profilo"];
 $_SESSION["periodic"]=$_POST["periodic"];      
 $_SESSION["from"]=$_POST["from"];
 $_SESSION["to"]=$_POST["to"];
 $_SESSION["weekdays"]=$_POST["weekdays"];
 $_SESSION["start"]=$_POST["start"];
 $_SESSION["expire"]=$_POST["expire"];
$step = 1;

if(!isset($_SESSION["profilo"]))
{

    $step = 1;
}
elseif(isset($_SESSION["profilo"]) && !isset($_SESSION["periodic"]))
{

    $step = 2;
}
elseif(isset($_SESSION["periodic"]) && !isset($_SESSION["start"]))
{

    $step = 3;

}
else
{

    $step = 4;
}

次に、命令を実行します

WriteForm($step);

これは、$stepの値に応じてさまざまな形式を切り替える関数です。問題は、2番目のステップの後、ステップ3に進むことで最初のフォームに戻ることです。問題は、2回目に「送信」を押したときに、2番目のフォームに「プロファイル」がないことだと思います。 "フィールド:次のページの実行により、$ _ SESSION ["profilo "]がNULL値で上書きされ、ifサイクルのステップ1の原因に戻ります。どうすればこの問題を解決できますか?

編集:情報のために:form1には「profile」フィールドだけがあり、form2には「periodic」、「from」、「to」、「weekdays」があり、form3には「start」、「expire」があります。

4

1 に答える 1

1
 if(isset($_POST["profilo"])) $_SESSION["profilo"]= $_POST["profilo"];
 if(isset($_POST["periodic"])) $_SESSION["periodic"]=$_POST["periodic"];      
 if(isset($_POST["from"])) $_SESSION["from"]=$_POST["from"];
 if(isset($_POST["to"])) $_SESSION["to"]=$_POST["to"];
 if(isset($_POST["weekdays"])) $_SESSION["weekdays"]=$_POST["weekdays"];
 if(isset($_POST["start"])) $_SESSION["start"]=$_POST["start"];
 if(isset($_POST["expire"])) $_SESSION["expire"]=$_POST["expire"];
$step = 1;

if(!isset($_SESSION["profilo"]))
{

    $step = 1;
}
elseif(isset($_SESSION["profilo"]) && !isset($_SESSION["periodic"]))
{

    $step = 2;
}
elseif(isset($_SESSION["periodic"]) && !isset($_SESSION["start"]))
{

    $step = 3;

}
else
{

    $step = 4;
}
于 2011-05-31T19:34:09.253 に答える