2017-10-23 8 views
0

私はこれ以上のstackoverflowを調べていますが、それは私には分かりません。私はJqueryのAjax関数を持っています。 これは、リモートでPHPスクリプトに接続し、結果を返した後、私は結果を処理して公開するために同じフォームを使用しますが、もう1つのステップはAJAXではなく純粋なPHPを通じて行われます。私はその2番目のステップもAJAXでやりたかったので、結果を得た後、AJAX URLは2番目のPHPスクリプト(ローカルに保存されている)が置かれているアドレスに変更されると思いました。ajaxで結果を取得した後にターゲットURLを変更します

$('[id^="form-busqueda"]').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      type : 'POST', 
      url : 'https://example.com/script1.php', 
      data : $(this).serialize(), 
      cache: false, 
      beforeSend: function(){ 
       $('#result').html('<img src="'+pluginUrl+'./assets/img/loading.svg" />'); 
      } 
     }).done(function(data) { 
      $('#result').html(data); // GET DATA 
      $('[id^="form-busqueda"]').prop('action','?page='+plugin_page_id+'&publicar=si'); // Change the target attr (for second step) 
      $('[id^="form-busqueda"]').unbind('submit'); //unbind event 
     }); 
    }); 

私は結果を得れば、あなたが、私のコードで見ることができるように、私は、フォームの属性「行動」のターゲットと私は先に得られた結果を公開するために、同じフォームを使用してそのように設定します。

私は現在同じフォームを使用していますが、結果を取得すると、2番目のPHPスクリプトを処理するようにajax URLを変更します。このような何か:

$('[id^="form-busqueda"]').on('submit', function(e) { 
      e.preventDefault(); 
      $.ajax({ 
       type : 'POST', 
       url : 'https://example.com/script1.php', 
       data : $(this).serialize(), 
       cache: false, 
       beforeSend: function(){ 
        $('#result').html('<img src="'+pluginUrl+'./assets/img/loading.svg" />'); 
       } 
      }).done(function(data) { 
       $('#result').html(data); // GET DATA 
       $.ajax({ 
       type : 'POST', 
       url : pluginUrl+'./script2.php', 
       data : $(this).serialize(), 
       cache: false, 
       beforeSend: function(){ 
        $('#result').html('<img src="'+pluginUrl+'./assets/img/loading.svg" />'); 
       } 
      }).done(function(data) { 
       $('#result').html(data); // GET DATA 
      }); 
       $('[id^="form-busqueda"]').unbind('submit'); //unbind event 
      }); 
     }); 

私も、フォームのIDを変更する可能性を考えると、新しいでそれを治療して、私は構文が間違っていることを知っているが、それは私が思っていた多かれ少なかれものですAJAXの機能ですが、もう少しエレガントなオプションがあるかどうかはわかりません。

+0

"私は構文が間違っていることを知っています"具体的には間違っていると思いますか?あなたはこれを試しましたか? –

+0

はい、私はテストをしましたが、うまくいきませんでした。 – Kokox

答えて

0

あなたは私はあなたがどう思うかを参照のうえされている場合は、このような何かがうまくいくかもしれない(それは私のために働いたが、時間前に、私はまさに私が使用したコードを覚えていない)

$('[id^="form-busqueda"]').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      type : 'POST', 
      url : 'https://example.com/script1.php', 
      data : $(this).serialize(), 
      cache: false, 
      beforeSend: function(){ 
       $('#result').html('<img src="'+pluginUrl+'./assets/img/loading.svg" />'); 
      } 
      success: //Your code here 
     }) 
}); 

これがうまくいかない、または私が間違っていると言ったことがありましたら、もう一度私に尋ねてください:)

+0

AJAXでURLを変更すると、結果が得られます。 – Kokox

+0

これを実行する最善の方法であるかどうかは分かりませんが(私はこれを一度だけ行う必要があります)、AJAXをAJAXの中に挿入しました。成功しました。どこに新しいAJAXがあるだろうか)、それがあなたのためにうまくいかないなら、私は新しいアイデアを思いついてみよう –

関連する問題