使用PHP或JS将表单值传递到其他页面

时间:2011-02-21 04:01:04

标签: php javascript forms

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

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

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

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

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

文件:

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

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

3 个答案:

答案 0 :(得分:3)

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

如果您的邮政编码确实已发布,那么您只需使用$myzip = $_POST['zipcode'];

在下一页上进行检索即可。

用会话来做你必须:

session_start();

位于页面顶部并设置可修改的w / $_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存储到会话变量$_SESSION['zipcode'];中。每次用户在process.php中输入zipcode时,它都会显示会话var zipcode中的内容。因为你在iframe中有它,看看会话是否正常工作只需点击你已经回显的链接,这应该指向自己。如果您使用GET或POST,则会显示Session var zipcode,但如果您使用Session,则会显示。希望这会有所帮助。

答案 1 :(得分:0)

使用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)GET(http://www.php.net/manual/en/reserved.variables.get.php)

答案 2 :(得分:0)

如果您暂时只需要邮政编码,并且不需要为用户保留邮政编码,那么您可以使用会话将其存储为整个会话。

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

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

如果您认为数据应该保留在用户的偏好中以供将来使用,那么最好将其放在用户配置文件中并使用它。

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