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

时间:2014-02-08 17:02:51

标签: php load

我需要在浏览器中加载新页面。我用过“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。

4 个答案:

答案 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)

试试这个......

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

  2. 执行此javascript代码。

       window.location "http://mysite/theNewPage
    

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

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

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

  5. 使用javascript设置cookie使用此代码

    //设置cookie cookie1 document.cookie =  “COOKIE1 =测试; expires = 2001年8月3日星期五20:47:11 UTC;路径= /'

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