2011-12-28 3 views
0

私は最初のデータを2番目のフォームに送信する2つのフォームがあります。PHPフォームで、サーバー側の検証に失敗した場合、表示するために入力したフォームデータを取得する必要があります

最初のフォームデータが2番目のフォームに送信される前に、サーバー上でそのデータが検証されます。

最初のフォームデータは多くの情報で構成されています。したがって、検証の失敗時に、ユーザーは小さな間違いのためにすべてのデータを再度入力する必要があります。

したがって、妥当性検査の失敗に関するデータをフォームにあらかじめ入力しておけば、ユーザーは不足しているデータを埋めるだけでよいのですか?

私はZendフレームワークとMVCアーキテクチャでMySQLを使用してPHPを使用していますが、私はZend_Formを使用することができません。

+0

標準の 'Zend_Form'設定を使用している場合、' $ form-> isValid($ _ POST) 'を呼び出すと、フォームに投稿されたデータが入力されます。エラーがある場合、それらもフォームにあり、デコレータを介してレンダリング可能です。ビューでフォームがレンダリングされると、エラーと送信された値の両方がそこにあるはずです(正しいデコレータが適用されていることが条件です)。それはあなたが見ているものではありませんか?または、_second_形式での検証の失敗と、最初の形式のデータを保持する必要性に関する質問がありますか? –

答えて

0
<?php 
// your input will validate in the php in your own code then.... 
$good = 1; 
foreach($_POST as $k => $v){ 
$$k = $v; // this will create variables for your submitted names to post back 
if($$k==''){$$k = "needs an entry";$good=0;} 
} 

if(!$good){ 
?> 
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<input type=text name=demofieldname value='<?php echo $demofieldname ?>'> 
- etc- 
</form> 


<?php 
}else{ 

//finish processing 
} 
?> 

これは簡単な方法です。あなたの既存のコードとより統合的であるかもしれない他の方法があり、あなたのセッション管理に応じて、もしあなたがウィザードファッションなどで購入バスケット配列を続けるならば、物事はより複雑になる可能性があります。

念頭に置いておいてください - これはここでは簡単ですが、dbを使用している場合は、関連するクエリに関してさらに複雑になる可能性があります。

=== EDIT注 を変更した場合は、Zend_Formのクラスを使用する場合は、すべてのデータが自動的に付きポスト要求の後に取り込まなければならない

0

'(' もし$$ K ==)に($ kを== '')フォームの失敗。以下のサンプルコード:

+0

申し訳ありませんが、私はzendフォームを使用していません。基本的なhtmlフォーム – user1109239

+0

Zend Frameworkを使用している場合は、Zend Formも使用することを強くお勧めします:) –

+0

hmmmしかし、私にとっては不可能なデータです... phtmlフォームの代替ソリューションは何ですか? – user1109239

関連する問題