私はこれ以上の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の機能ですが、もう少しエレガントなオプションがあるかどうかはわかりません。
"私は構文が間違っていることを知っています"具体的には間違っていると思いますか?あなたはこれを試しましたか? –
はい、私はテストをしましたが、うまくいきませんでした。 – Kokox