1

モーダルお問い合わせフォームには多くの質問/回答があることは承知していますが、ページに通常のお問い合わせフォームを表示する方法を知りたいのですが、送信すると、PHPアクションがモーダルでポップアップ表示されます。私たちに連絡してください」、またはそれらの線に沿った何か、そしてそれから閉じる能力。私は以前にHTMLの連絡先フォームを作成し、PHPアクションに夢中になりましたが、モーダルでは決してありません...(プラグインを使用しない)簡単な解決策はありますか?

誰かがこの質問を持っていて、それが答えられることを望むならば、必ず投票してください。

4

1 に答える 1

1

JavaScriptを使用しないソリューションが必要な場合は、フォーム処理スクリプトがフォームのすべての状態を表示できる必要があります。これらには以下が含まれます:

  • 最初の未記入のフォーム
  • 最初の提出に対する応答は次のとおりです。
    • エラーがマークされた、部分的または誤って入力されたフォームの表示
    • ありがとうメッセージ
  • お礼のメッセージへの返信

<div>モーダルポップアップは、他のすべてのhtml(子を除く)の上にz位置に配置され、ビューポート全体をカバーするようにスタイル設定された半透明のコンテナ要素(例)のみです。フォームやその他の好きなものが含まれています。使用されていない場合、そのdisplay属性はに設定されnoneます。

したがって、phpフォームハンドラーは次のように機能する可能性があります。

$modalclass='modalhide';
$filteredpost=array();

if(isset($_POST['submit1']){ //user submitted form data
    //validate submitted data
    $filteredpost = my_cleanup_function($_POST); 
    if(my_form_is_good($filteredpost){
      $modalclass='modalshow';
      $filteredpost=array();
    } 
} 

echo <<< EOF
<form method='POST' name='mainform' action='myhandler.php'>
   //other form fields
   <input type='submit' name='submit1'>
</form>
<div class='$modalclass'>
   <form name='thanksmodal' method='POST' action='myhandler.php'>
      //content of some sort
      <input type='submit' name='thankssubmit'>
   </form>
</div>
EOF;

AJAXメソッドは、javascriptが送信ボタンのアクションをインターセプトし、フォーム処理スクリプトに非同期で送信して結果を表示することを除いて、同様です。これを簡単にするために、周りにはたくさんのjavascriptライブラリがあります。jQueryjQuery-UIは私の2つのお気に入りです。

于 2012-08-27T13:36:25.177 に答える