使用javascript将值从一个页面传递到另一个页面

时间:2012-03-17 13:36:02

标签: javascript html forms textarea

如何根据groupwall方法将textarea的值传递给新页面?
在这里,我只是重定向页面。我想根据他们的学期进行状态更新 这是我的代码。给我一些代码示例或建议这是不是正确的方法。

<form action=""   method="get">
    <textarea name="status" id="wall" cols="50" rows="2">                
    </textarea>

    <input name="submit" type="submit" value="share" onclick="groupwall();"/>
</form>

<script type="text/javascript">
    function groupwall(){
        var semster=document.getElementById('txtsamp').value;
        if(semster == "4-1"){
            window.location ='4-1hpage.php';
            //header("location: member-index.php");
        }
        else if(semster =="3-1"){
            window.location ='3-1hpage.php';
        }
        else if(semster == "2-1"){
            window.location ='2-1hpage.php';
        }
        else {
            window.location ='1-1hpage.php';
        }
    }
</script>

5 个答案:

答案 0 :(得分:1)

您可能最好将textarea内容发布到您的服务器并将其存储在某个地方,即使在会话中也是如此。我之所以这样说是因为虽然您可以将window.location作为GET参数传递给它,但textarea内容可以任意长,并且可能太长而无法作为GET参数传递。在重定向到应用程序的下一页之前,您可能会考虑使用AJAX请求将textarea发布到内容(可能执行验证)。

答案 1 :(得分:0)

只需给你的表单一个id -
<form id="share-form" ...

设置表单的操作而不是重定向

var share_form = document.getElementById('share-form');  
share_form.action = '....';

提交表格
share_form.submit();

答案 2 :(得分:0)

如果数据不大,将某种变量传递给新页面的最简单方法是将其放入URL中的查询字符串中,然后让新页面将其解析出来并对其进行操作。查询字符串是URL之后的问号标记,如下所示:

4-1hpage.php?data=whatever

查询字符串值不会影响服务器上调用哪个页面,但服务器或客户端可以使用它来触发该页面中的不同行为。

在您的特定问题的细节中,您似乎不需要将任何数据传递到下一页,因为您已根据textarea的结果调用了不同的页面,但您可以传递该值如果您需要,请这样:

                              
function groupwall() {
    var semster=document.getElementById('txtsamp').value;
    var url;
    if(semster == "4-1") {
        url ='4-1hpage.php';
    } else if(semster =="3-1") {
        url ='3-1hpage.php';
    } else if(semster == "2-1") {
        url ='2-1hpage.php';
    } else {
        url ='1-1hpage.php';
    }
    // encode the data for URL safety and make sure it isn't too long
    window.location = url + "?semster=" + encodeURIComponent(semster.slice(0, 128));
}

如果textarea可以任意长,并且需要能够接受非常长的值,那么您需要将其发布到服务器并让服务器决定在表单发布后将用户重定向到何处。生成新页面时,服务器可以根据表单帖子中的值,使用所需的任何内容填充该页面。

可以临时存储数据的其他地方,以便将来的页面可以访问它是Cookie和HTML5本地存储。 Cookie的大小有些限制,将大量数据放入cookie无效。并非所有浏览器都支持HTML5本地存储,因此您通常需要备用策略作为后备。

答案 3 :(得分:0)

1) do a form post to another PHP page and 
  a) Store it in a database   (If you will really use this in future also)
          OR
  b) Store it in Session Variable
          OR
2) do an ajax post to a server page and 
          OR
  a) Store it in a database
          OR
  b) Store it in Session Variable

然后,您可以从任何PHP页面访问这些值。

答案 4 :(得分:0)

  1. 通过查询字符串yoururl.com?variable=value
  2. 作为参数发送
  3. 通过$_SESSION环境变量
  4. 使用Cookie(如果已开启)
  5. AJAX - 在离开页面之前存储在数据库或文本文件中,并在进入新页面时检索