【问题标题】:Carrying a form value over to other pages either with PHP or JS使用 PHP 或 JS 将表单值传递到其他页面
【发布时间】:2011-02-21 04:01:03
【问题描述】:

我在网站主页上有一个表单,用作包含,询问“输入您的邮政编码”,并在 PHP 文件中使用简单的 if else 语句,显示首选位置(由客户端提供) .

在提交时,位置部分仅使用 $_POST 功能,并通过一些简单的 if else 显示位置。

我遇到的问题是将该值传递到其他页面。输入邮政编码并显示结果后,该结果需要转移到其他页面,但我并不难弄清楚。

/我添加了一个链接 -- */

http://www.subigya.com/stackoverflow/zipcode

文件:

http://www.subigya.com/stackoverflow/zipcode/zipcode.zip

我现在意识到一些不同的问题,我不能简单地让会话运行,我不知道为什么。

【问题讨论】:

  • 你能发一些代码吗?
  • 您也可以使用 $_POST 携带其他值。将它们与邮政编码相同。

标签: php javascript forms


【解决方案1】:

POST 和 GET 只传送到您请求它的页面。 session_start() 根据通过 GET 或 POST 请求或通过 cookie 传递的会话标识符创建会话或恢复当前会话。

如果您确实发布了邮政编码,那么您可以在下一页使用$myzip = $_POST['zipcode']; 简单地检索它

要通过会话做到这一点,您必须:

session_start();

在页面顶部并使用$_SESSION['zipcode'] = 'myzipcode'; 设置变量或检索值$myzip = $_SESSION['zipcode'];

PHP Session

在 process.php 中更新您当前的代码:

<?php
    session_start();
    if(count($_POST)>0)    
    {       
        $zip = $_POST['zipcode'];
        $_SESSION['zipcode'] = $zip;
    } else if(isset($_SESSION['zipcode']))
        $zip = $_SESSION['zipcode'];
    echo 'Current zipcode in session: ' . $_SESSION['zipcode'] . PHP_EOL; 
    if ($zip=="00000"){
        echo'
            <div id="result1" class="zipcodeResult">
                <p><span class="locationName yellow">Location Name</span><br />
                Address 1<br />
                City, Texas 77025<br />
                888.88.8888<br />
                GM, <span class="underline">John Quest</span><br /><br />
                <a href="#" target="_blank">Menu</a> | <a href="#" target="_blank">Catering</a> | <a href="#">Private Dining</a><br />
                <a href="#" target="_blank">Take Out</a> | <a href="#">Map &amp; Hours</a><br /><br />
                <a href="search.php" class="backtoSearch">Change My Location</a></p>
            </div>';
    }else {
        unset($_SESSION['zipcode']); 
        echo '
            <div id="result6" class="zipcodeResult">
                <p><span class="locationName yellow">Unrecognized Zip Code</span><br />
                The zip code you have provided <br />
                is out of range. <br /><br />
                We primarily serve <br />
                the greater Houston area <br />
                in the state of Texas.<br /><br />
                <a href="search.php" class="backtoSearch"> Click here to enter <br />
                another zip code.</a></p>
            </div>';
    }
?>

这里只是对现有 process.php 的简单修改。我添加了会话,并且基本上将输入的邮政编码存储到会话变量$_SESSION['zipcode']; 中。每次用户在 process.php 中输入邮政编码时,它都会显示放入会话 var 邮政编码的内容。由于您将它放在 iframe 中,因此要查看会话是否正常工作,只需单击您已回显的链接,该链接应指向自身。如果您使用的是 GET 或 POST,则不会显示 Session var zipcode,但如果您使用的是 Session,则会显示。希望这会有所帮助。

【讨论】:

  • 哇!这次真是万分感谢。完成此操作后,我将向您发送链接。这应该有帮助:)
【解决方案2】:

使用 PHP 有多种方法可以将信息从一个页面传输到另一个页面

1) 会话 (http://no2.php.net/manual/en/book.session.php)

在一页上:

$_SESSION['someKey'] = 'someValue';` 

在另一个页面上:

echo $_SESSION['someKey'];

要使会话正常工作,您需要在两个页面的顶部运行session_start();(实际上是您希望会话存在的每个页面)。

2) POST (http://www.php.net/manual/en/reserved.variables.post.php)

3) 获取 (http://www.php.net/manual/en/reserved.variables.get.php)

【讨论】:

  • 是的,我同意。现在我正在使用 post 传输信息,但我只能将其传输到表单中指定的页面 action="thisfile.php" ...但我也需要将该值传递到其他页面.您将如何使用会话来做到这一点?例如,在主页上,我有一个简单的表格,说输入您的姓名,一旦输入,在网站的其余部分,它会说,你好 arex1337... 我如何使用会话来做到这一点?
  • 谢谢。我知道这应该很容易,但不知何故,我无法弄清楚。我添加了一个链接bit.ly/gYQ7xs 并且文件位于bit.ly/h8325M 我刚刚意识到我正在使用 iframe 并且不会这样做,因为当我从第 2 页转到第 1 页时,如果我输入了邮政编码在第 1 页,在第 2 页,它返回输入您的邮政编码......我有一个非常简单的 JavaScript 解决方案,但它只适用于单个页面,我正试图让它在整个网站上工作。 :(
  • @suBi 不要使用框架。 1999 年就是这样。(和不好的做法。)
【解决方案3】:

如果您只是暂时需要邮政编码并且不需要为用户保留它,那么您可以使用 session 来为整个 session 存储它。

如果您从一个页面移动到另一个页面,您也可以使用 GET(在查询字符串中添加邮政编码)。如果您需要随身携带最少的页面并且您没有太多要随身携带的东西,这很合适。

POST 是另一种方式,在这种情况下,您必须使用跨页发布。

如果您觉得数据应该被持久化在用户的偏好中以备将来使用,最好将其放在用户配置文件中并使用它。

使用会话或将其保存在用户配置文件中的一个好处是您可以在站点的任何页面上使用它。你不需要明确地随身携带它。但是对于 POST 和 GET,您需要明确地将数据带到另一个页面。这可能需要一些管理。

【讨论】:

  • 我想我理解其中的逻辑,但我仍然无法让这件事发挥作用。有什么建议么 ?演示:bit.ly/gYQ7xs 文件:bit.ly/h8325M
猜你喜欢
  • 2018-09-05
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多