0

シンプルなコンタクト フォームを使用する静的な HTML ページがあります。ユーザーが送信ボタンをクリックすると、.php ページを使用してデータが送信されます。私はこれをテストしましたが、問題なく動作します。私が抱えている問題は、ユーザーがメッセージを送信した後、その html ページにユーザーを留まらせる方法です。リダイレクトはまったく必要ありません (可能であれば、連絡先フォームが入っているモーダルを閉じて、元のページに戻ることができるようにしたいと思います - この連絡先フォームは複数のページにあります) .

私が持っているもの:header('Location: index.html');リダイレクトは問題ありませんが、これを使用してすべてのページに php 連絡先スクリプト ページを作成する必要があります。

私が試したこと:header('Location: '.$_SERVER['REQUEST_URI']);そしてheader('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

JavaScript:onclick="window.location.reload(true)"何もしませんでした。

* * AJAX を使用して、思い通りに動作するようになりました。これは私にとってまったく新しいことでした。私を助けてくれたすべての人に感謝します。最終的に私が望んでいたことをしなかった答えを経験することでさえ、私にいくつかの新しいことを教えてくれました - そしてそれは私の本の中で良いことです. あなたの時間の人々に感謝します:)

実際の動作を見たい場合は、私のテスト ページで確認してください : http://www.novasev.com/NST/about.html : 下部パネルの [Get in Touch] ボタンです。

4

3 に答える 3

1

これは暗闇での完全なショットです。

これにより、自分自身に永遠に無限にリダイレクトされ、ブラウザーでエラーが発生します。

header('Location: ' . $_SERVER['REQUEST_URI']);

これを試して

if(!isset($_GET['r']))
    header('Location: ' . $_SERVER['REQUEST_URI'] . '?r=1');

これはリダイレクトされますが、パラメーターを使用すると、このrパラメーターをチェックして、リダイレクトが何度も発生しないようにすることができます。

于 2013-07-19T20:35:05.100 に答える
1

jQuery を使用し、Ajax を使用して連絡先フォームを送信する必要があるようです。Ajax を使用すると、コンタクト フォームがバックグラウンドで送信され、ユーザーにはページの更新が表示されなくなります。つまり、モーダル ウィンドウが残り、JavaScript コードを使用して閉じることができます。

これは、正しい軌道に乗るのに役立つことを願っている簡単な例です。contact.php スクリプトから潜在的なエラーを検出するには、ドキュメントhttp://api.jquery.com/jQuery.ajax/を確認してください。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    $("#contact").submit(function() {
      $.ajax({
        type: "POST",
        url: "contact.php",
        data: $(this).serialize(),
        success: function() {
           alert("Thanks for contacting us!");
         }
      })
      // Prevent that page reloads
      return false;
    })
  })
</script>

<form id="contact">
   <input type="text" name="name" /> 
   <input type="text" name="msg" /> 
   <input type="submit" />
</form>
于 2013-07-19T20:50:42.427 に答える
-1

可能であれば、POST で AJAX 呼び出しを使用して、送信時にデータを URL に送信します。この方法でリダイレクトをバイパスします。

于 2013-07-19T20:38:12.693 に答える