0

これはワードプレスで構築されたサイトに関連しています。"content-div"特定の div の一部のコンテンツが ajax submit を介してメールで送信される小さなシステムがあります。<form>以下のコードでわかるように、タグを使用していないことに注意してください。残りの部分は非常に簡単です。

HTML : コンテンツは div 内で生成され、 経由で送信されinput-type=submitます。

<div id="content-div">
        //php generated content
</div>
<input type="submit" value="SUBMIT-CONTENT" id="button" onClick="handleFormSubmit()">

AJAX - 送信とリダイレクトは、このコードを介して行われます。

<script language="javascript" type="text/javascript">

     function handleFormSubmit()
      {
        var button = document.getElementById('button');
        button.style.display = 'none';
      }
    </script>

    <script type="text/javascript">
      jQuery(document).ready(function($) 
       {
         $('#button').click(function(){
         $.ajax({
              type: 'POST',
              url: 'http://awesomeness.com/pathto/processForm.php',
              data:{'message':$('#content-div').html(),'client': $('#some-field').val()           },
                  success:function(data) {
                  window.location = "http://awesomeness.com/thanks/";
             }
           });
          });
         });
    </script>

ProcessForm.php には、基本的な HTML メール コードが含まれているだけです。これは次のようになります。

$to = "emailto@awesomepeople.com";
  $subject  = "NEW ARTICLE";
  $message .= $_POST['message'];
  $client   = $_POST ['client'];
  $headers = "From: awesomesite <someone@website.com>" . "\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";           
  mail($to, $subject, $message, $headers);

これはすべて正常に実行されます。ここで、訪問者が「SUBMIT-CONTENT」ボタンを押したときに実行する必要がある別の php 関数があります。この機能はリンクとして提供されます。

<a class='wpfp-link' href='?wpfpaction=reset' rel='nofollow'>RESET</a>

通常、このリンクをクリックすると、基本的にブラウザのキャッシュをクリアし、メインの「content-div」をリセットする機能がトリガーされます。ページにこの機能のリンクは必要ないことに注意してください。送信時に何らかの形で実行する機能が必要なだけです。基本的に、訪問者が「SUBMIT-CONTENT」をクリックすると、「RESET」リンクがクリックされたかのように、リンク内の機能が実行されます。これは、送信が成功したときに発生する可能性があり、フォームは通常のルーチンである必要があります。processForm.php に送信し、リダイレクトなどを行います。私が求めていることが可能であることを願っています。もしそうなら、どのように?よろしくお願いします。

4

1 に答える 1

0

少なくともあなたがそれをどのように説明するかではありません。

Ajax リクエストを実行すると、パラメータが送信され、リクエストのレスポンスを解析できます。

wpfpaction=resetここで、の出力はHTMLになると思います。1 つの可能性は、ページの現在の HTML コードを への ajax クエリからの応答に置き換えることwpfpaction=resetです。

この質問を参照してください:ページを更新せずに HTML コードを変更する

于 2013-10-25T08:24:22.560 に答える