0

ユーザーがフォームの送信ボタンをクリックした後、ページのリロード時に div を表示する必要があります。

具体的には、show/hide div に PHP の連絡先フォームがあります。連絡先をクリックすると、連絡先フォームが表示および非表示になります。show/hide js と php コンタクト フォームの両方が完全に機能します。ユーザーが送信をクリックすると、ページがリロードされ、「メッセージが送信されました」が連絡先フォームの div に書き込まれます。しかし、ページがリロードされると、フォームはdisplay: none;に設定された div にあります。CSS で -- デフォルトでページが読み込まれる方法です。

submit 時に、ページをリロードして非表示の div に連絡先フォームを表示する必要があります。ページのすべての JavaScript がデフォルトにリロードされるため、どこから始めればよいか正確にはわかりません。また、すべて PHP であるため、content_form div でアンカーを設定または呼び出すことはできません。

ありがとう!

4

4 に答える 4

2

私は、JS ソリューションよりも CSS ソリューションを好みます。

if ($form_is_valid)
    echo '<style type="text/css">#contact { display: block; }</style>';

編集:物事を少しきれいにするために、フォームが正常に送信された場合は、フォームにクラスを追加することをお勧めします。このようなもの:

$class = $form_is_valid ? ' class="submitted"' : '';
echo '<form method="..." action="..."' . $class . '>...</form>';

display: none;次に、次のように、定義の後に続く CSS 定義を行うことができます。

form.submitted { display: block; }
于 2009-08-20T18:36:45.840 に答える
1

フォームが正常に送信された場合にのみ、PHP コードを使用してスクリプトを作成できます。

次に、JavaScript をエコーし​​て、要素の表示をブロックに設定します (次の PHP コードと同様)。

if($form_is_valid)
{
    echo '<script type="text/javascript">'
       . 'document.getElementById("elementID").style.display = "block";'
       . '</script>';
}
于 2009-08-20T18:24:22.153 に答える
0

ブレークスルーの答えはうまくいくはずですが、個人的には、ページの読み込み時にそうでない場合は、CSS によって隠されていても、マークアップに成功やエラーのメッセージを入れるのは好きではありません。とにかくページがリロードされるため、これを行うと、これを解決するために JavaScript や CSS がまったく必要なくなります。

<?php if ($form_is_valid) include('SnippetFileWithSuccessMessageDivInIt.php') />
于 2009-08-20T18:37:41.627 に答える
0

送信されたコンテンツがフォームに読み込まれている場合は、javascript を使用して、入力フィールド内のテキストの存在を検出できます。コンテンツが存在する場合は、display: block を設定します。

于 2009-08-20T23:48:54.837 に答える