我需要在浏览器中加载新页面。我用过“window.location = somePage.html?arg1 = val1& arg2 = val2 ...”等等。
但是我必须将页面加载到浏览器,当新页面加载时,网页栏中不会显示“GET”参数。
换句话说,我需要加载新页面 - 然后传递给它 arg1 = val1 和 arg2 = val2 等但是没有arg1,arg2等名称 - 值对出现在URL栏中。
我怀疑我可以修改mod_rewrite规则。不想这样做。
我想做的是以某种方式将'POST'参数 - 就像表单一样 - 传递给服务器,并将新页面加载到浏览器中,新页面的PHP代码以某种方式接收 arg1 和 arg2 参数,以便新页面的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。
答案 0 :(得分:2)
无法使用POST
发送window.location.href
请求。您需要做的是设置一个包含数据字段的表单标记,将表单的action属性设置为URL,将方法属性设置为POST
,然后在表单标记上调用submit方法。 / p>
<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'];
。
答案 1 :(得分:1)
我觉得你需要会话变量。
在您需要变量的每个页面中开始您的会话。
session_start();
设置变量
$_SESSION['arg1'] = 'some value';
$_SESSION['arg2'] = 'some other value';
然后在其他页面上使用它。
echo $_SESSION['arg1'];
答案 2 :(得分:1)
手动为URL创建表单并使用POST方法提交表单。这是纯JavaScript和JQuery-
的解决方案纯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
答案 3 :(得分:1)
试试这个......
首先使用javascript在浏览器中设置cookie。
执行此javascript代码。
window.location "http://mysite/theNewPage
因此,您将重定向到"http://mysite/theNewPage
在PHP文件中渲染之前检查cookie中设置的参数。
在PHP文件中,您将获得设置的cookie参数。根据页面内容显示。
使用javascript设置cookie使用此代码
//设置cookie cookie1 document.cookie = “COOKIE1 =测试; expires = 2001年8月3日星期五20:47:11 UTC;路径= /'
在此,您将使用可在服务器中访问的cookie设置参数。