-3
<?php
class JpResearchSurveyDbPage extends DataObject{
static $db = array(
'year_living' => 'Varchar(200)',
'other_public_transport' => 'Varchar(50)',
'year_living1' => 'Varchar(200)',
'type_of_mode_unfamiliar_services' => 'Varchar(50)'
);
enter code here
}
$host="localhost"; 
$username="sgevh_admin"; 
$password="q1w2e3r4t5";  
$db_name="sgevh_test";
$con = mysql_connect("$host","$username","$password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("$db_name", $con);

$sql="INSERT INTO year (aaa,bbb,ccc,eee)
VALUES
('$_POST[year_living]','$_POST[other_public_transport]','$_POST[type_of_mode_unfamiliar_services]','$_POST[year_living1]')";

    //$sql="INSERT INTO month (ccc)
    //VALUES
    //('$_POST[type_of_mode_unfamiliar_services]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
?>`

//これは、マルチステップ フォームをデータベースに接続するために使用したテスト php コーディングです。

<?php
class JpResearchSurveyMultiForm extends MultiForm{
public static $start_step = 'JpResearchSurveyFirstStep';
public function finish($data, $form){
parent::finish($data, $form);
$firstStep = $this->getSavedStepByClass('JpResearchSurveyFirstStep');
$_JpResearchSurveyFirstPage = new JpResearchSurveyDbPage();
$firstStep->saveInto($_JpResearchSurveyFirstPage);

$secondStep = $this->getSavedStepByClass('JpResearchSurveySecondStep');
$secondStep->saveInto($_JpResearchSurveyFirstPage);

$_JpResearchSurveyFirstPage->write();
return $this->controller->customise(array(
'Form' => false,
'Content' => 'Thanks for registering!'
))->renderWith('Page');
}
}
?>

//これは、データを送信するために「送信」ボタンを押したときに、フォームの最終ステップが何をするかを指示するテスト コーディングです。フォームを試して、2 ページ フォームを使用して詳細を送信すると、フォームの最後のステップである 2 ページ目のフィールドのデータのみがデータベースに保存されました。

以前のフォーム セッションでフィールドのデータを保存できないという問題を引き起こしているのは、2 つのコーディングのうちどれですか?

4

1 に答える 1

0

各ステップをデータベースに保存し、各ステップで更新することは好ましくありません。代わりにセッションと Cookie を使用してユーザー入力を管理し、最後のステップでそれらを DB に保存します。後でセッションを強制終了することを覚えておいてください

于 2012-11-28T08:44:42.337 に答える