需要发布到服务器才能加载新页面



我需要在浏览器中加载一个新页面。我使用了"window.location=somePage.html?arg1=val1和arg2=val2…"等等。

但是我必须将页面加载到浏览器中,而加载新页面时URL栏中不会显示'GET'参数

换言之,我需要加载新页面,并将其传递给arg1=val1arg2=val2等,但不让arg1、arg2等名称值对显示在URL栏中。

我怀疑我可以修改mod_rewrite规则。我不想那样做。

我想做的是以某种方式将"POST"参数(就像表单一样)传递到服务器,并将新页面加载到浏览器中,新页面的PHP代码以某种方式接收arg1arg2参数,以便新页面的PHP代码可以使用它们。

不知道该怎么做。Ajax是错误的答案,因为虽然我可以使用Ajax将arg1、arg2等传递给服务器,但Ajax的全部目的是避免必须加载新页面。

我需要的是:

// THE ARGS SYNTAX ON THE RIGHT HERE IS *COMPLETELY* MADE UP.
window.location "http://mysite/theNewPage<<arg1="val1" + <<arg2="val2"

如何加载一个新页面,将名称/值对传递到新页面,而不在URL栏中显示?

此处根本不使用JQUERY。

无法使用window.location.href发送POST请求。您要做的是设置一个包含数据字段的表单标记,将表单的action属性设置为URL,将method属性设置为POST,然后在表单标记上调用submit方法。

<form id="myform" action="http://mysite/theNewPage.php" method="post">
<input type="hidden" name="arg1" value="val1">
<input type="hidden" name="arg2" value="val2">       
</form>

然后您可以在javascript中调用以下内容:

document.getElementById('myform').submit();

使用$arg1 = $_POST['arg1'];$arg2 = $_POST['arg2'];检索其他脚本中的内容。

祝你好运!

在我看来,您需要会话变量。在你需要变量的每一页开始你的会话。session_start();

设置变量

$_SESSION['arg1'] = 'some value';

$_SESSION['arg2'] = 'some other value';

然后在其他页面上使用它。

echo $_SESSION['arg1'];

试试这个。。。

  1. 首先使用javascript在浏览器中设置cookie。

  2. 执行此javascript代码。

    window.location "http://mysite/theNewPage
    

    因此,您将重定向到"http://mysite/theNewPage

  3. 在PHP文件中渲染之前,请检查cookie中设置的参数。

  4. 在PHP文件中,您将获得设置的cookie参数。根据显示页面内容。

  5. 要使用javascript设置cookie,请使用以下代码

    //设置cookie cookie1document.cookie='cookie1=测试;expires=协调世界时2001年8月3日星期五20:47:11;路径=/'

在此过程中,您将使用服务器中可访问的cookie设置参数。

手动创建一个到URL的表单,并使用POST方法提交表单

纯JavaScript解决方案-

function post_redirect(URL, args){
var form_tag = document.createElement("form");
form_tag.setAttribute('method',"POST");
form_tag.setAttribute('action', URL);
for(key in args){
var input_tag = document.createElement("input");
input_tag.type = "text";
input_tag.name = key;
input_tag.value = args[key];
form_tag.appendChild(input_tag);
}
form_tag.submit();
}

使用JQuery-

function post_redirect(URL, args){
form_str = '<form method = "POST" action = ' + URL + '>';
for(key in args){
form_str += '<input type="text" name="'+ key +'" value = "'+ args[key] +'"/>';
}
$(form_str).submit();
}

它的工作原理-

args = {
"name1" :   "value1",
"name2" :   "value2",
"name3" :   "value3",
"name4" :   "value4"
};
URL = "a.php";
post_redirect(URL, args);
//Re-directed to page pointed by URL

最新更新