Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 重定向页面后的Ajax调用_Jquery - Fatal编程技术网

Jquery 重定向页面后的Ajax调用

Jquery 重定向页面后的Ajax调用,jquery,Jquery,这是一种使用javascript重定向页面,然后直接执行向该页面添加数据的ajax调用的方法: 以下内容无效(#应用程序_搜索_结果是重定向URL页面中的标记): 对我来说,它看起来像是你想先搜索一些东西,然后在页面中显示搜索结果?如果是这样,您可以像我一样使用隐藏的提交表单并将结果作为Json传递给PHP文件: 这是我的搜索功能: function search(term) { if (term !== "" && term !== null && te

这是一种使用javascript重定向页面,然后直接执行向该页面添加数据的ajax调用的方法:

以下内容无效(#应用程序_搜索_结果是重定向URL页面中的标记):


对我来说,它看起来像是你想先搜索一些东西,然后在页面中显示搜索结果?如果是这样,您可以像我一样使用隐藏的提交表单并将结果作为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
    }
?>