Jquery 重定向页面后的Ajax调用
这是一种使用javascript重定向页面,然后直接执行向该页面添加数据的ajax调用的方法: 以下内容无效(#应用程序_搜索_结果是重定向URL页面中的标记):Jquery 重定向页面后的Ajax调用,jquery,Jquery,这是一种使用javascript重定向页面,然后直接执行向该页面添加数据的ajax调用的方法: 以下内容无效(#应用程序_搜索_结果是重定向URL页面中的标记): 对我来说,它看起来像是你想先搜索一些东西,然后在页面中显示搜索结果?如果是这样,您可以像我一样使用隐藏的提交表单并将结果作为Json传递给PHP文件: 这是我的搜索功能: function search(term) { if (term !== "" && term !== null && te
对我来说,它看起来像是你想先搜索一些东西,然后在页面中显示搜索结果?如果是这样,您可以像我一样使用隐藏的提交表单并将结果作为Json传递给PHP文件: 这是我的搜索功能:
function search(term) {
if (term !== "" && term !== null && term !== "undefined") {
swal({
title: 'Search for ' + term,
onOpen: function() {
swal.showLoading();
... some code from me
$.when(ajaxCall('search', params)).done(function(searchresult) {
setTimeout(function() {
swal.close();
if (searchresult) {
searchPOSTcall(searchresult);
} else {
swal({
type: 'error',
title: 'Nothing found!',
})
}
}, 500);
});
},
})
}
}
如您所见,我对搜索函数进行了Ajax调用,该函数返回搜索结果。如果我得到一些结果,我会将它们传递给“伪造”表单提交的重要功能:
function searchPOSTcall(params) {
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "/forecast");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "searchresult");
hiddenField.setAttribute("value", JSON.stringify(params));
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
}
对搜索结果执行JSON.stringify
以避免许多错误是很重要的。
然后在Results.php文件中,您可以得到如下结果:
<?php
if(isset($_POST['searchresult'])) {
$result = json_decode($_POST['searchresult']);
... do something with your results
}
?>
希望这能帮助你解决你的问题
编辑:
正如在评论中提到的,您可以在result.php中使用
onLoad
或其他方法进行ajax调用。仅当您希望首先检查是否有任何搜索结果,然后将其传递到结果页面时,才使用“我的方法”。如果未找到任何结果,请保留在开始搜索的页面上。这样可以避免在没有结果时不必要地重定向到结果页 在redirected page
中编写ajax
代码,这样它就可以工作了,在同一个页面上会被重定向,并且没有其他脚本会执行eadd onLoad事件来重定向页面,并在onLoad事件触发时执行ajax调用。
<?php
if(isset($_POST['searchresult'])) {
$result = json_decode($_POST['searchresult']);
... do something with your results
}
?>