我一直在研究stackoverflow,但我还不清楚。我在Jquery中有一个非常适合我的Ajax函数。 这会远程连接到PHP脚本并返回一些结果,在返回这些结果后,我使用相同的表单来处理结果并发布它们,但第二步不再通过AJAX而是通过纯PHP完成。我想第二步也是用AJAX完成的,所以我认为在获得结果之后,AJAX URL将更改为我的第二个PHP脚本(本地存储)所在的地址。
$('[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
});
});
正如您在我的代码中看到的,一旦我得到结果,我就为表单的属性“action”设置了一个目标,这样我就可以使用相同的表单来发布之前获得的结果。
我现在想要的是使用相同的表单但是一旦得到结果,我就更改了ajax URL以处理我的第二个PHP脚本。像这样:
$('[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)
如果你提到的是我认为你的意思,那么这样的事情可能有用(它对我有用但不久前我也不记得我用过的代码)
$('[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
})
});
如果这不起作用或我错了你试图说的话,再问我一次:)