如何将从foreach循环生成的变量传递给PHP中的另一个页面

时间:2014-10-07 06:13:29

标签: php mysql variables foreach

我有一个获取用户event_id的页面,然后用于从mysql中检索与该event_id相关的所有user_id和info。然后,数据显示在一个表中,其中一行代表一个用户。所以,现在我想在用户在另一个页面中点击该用户时显示特定用户的其他信息。

这是一个代码示例,用于说明我正在努力解决的问题。代码可能不如实际代码太长而无法显示。

main.php

<form name="input" method="post">    
    <input type="text" id="event_id" name = "event_id" value = "" /><br>
   <input type="submit" name="Submit" value="Submit" />    
</form>

//$user_main is an associative array generated when event_id
//is entered into input text box and user click submit
 <?php $user_main = array(); ?>

<table>
    <?php
    //Loop through and print all user_id associated with event_id entered
    foreach(user_main as main)
    { ?>
    <tr>User ID: <?php echo $main['user_id'];?></tr>
    <tr>User Name: <?php echo $main['user_name'];?></tr>
    <tr>User Info: <a href = "display.php">Contact</a></tr>
    <?php } ?>
</table>

Display.php的

//Pass user_id to display.php page that correspond to the user id clicked
user_id = {{ 111 }}

//retrieve contact info from mysql for user_id = 111 and display below
<table>
    <tr>User ID: </tr>
    <tr>Mobile: </tr>
    <tr>Address: </tr>
    <tr>Email: </tr>
</table>

我的问题是如何将变量传递给另一个页面。例如,如果用户单击user_id = 111的链接,如何将值'111'传递给display.php页面,以便我可以从mysql中检索数据以显示信息?

5 个答案:

答案 0 :(得分:1)

我想到的最简单的解决方案就是将用户ID和url作为参数传递。这显然假设user_id值不是保密的。因此,如果您像这样定义href标记:

<tr>User Info: <a href = "display.php?id="<?php echo $main['user_id'];?>>Contact</a></tr>

display.php中,您可以通过执行以下操作来获得id

$user_id = $_GET["id"]; //And do the relevant database lookups and display the info

但是,如果您要传递user_id,以便在浏览器的地址栏中看不到它,您可以发出一个简单的post请求并传递相关的{{} 1}}在该请求中。希望它能让你开始朝着正确的方向前进。

答案 1 :(得分:1)

对于此类任务,URI参数非常常用。在这种情况下,您可以使用$_GET超全局。

<tr>User Info: <a href = "display.php?userid=<?php echo $main['user_id'];?>">Contact</a></tr>

display.php中,您可以像这样访问变量:

<?php
echo $_GET['userid'];

从现在开始应该很清楚。您可以根据$_GET数据获取记录。别忘了在这里添加额外的安全性。你永远不应该相信用户输入。

这是非常基本的东西,所以,我建议你阅读一些超级全球,直到你有信心。

答案 2 :(得分:1)

<tr>User Info: <a href = "display.php">Contact</a></tr>

将此行更改为此

<tr>User Info: <a href = "display.php?id=<?php $main['user_id']?>">Contact</a></tr>

您可以在isset函数中运行查询。

<?php 

isset($_GET['id'])
{
    $id=$_GET['id'];

    //Run your query here, include $id in where clause in your query
}

答案 3 :(得分:0)

在PHP发布到的页面上,使用$_REQUEST$_POST变量来获取数据。 例如,在您的显示页面上,您可以使用$event_id = $_REQUEST["event_id"]

答案 4 :(得分:0)

正如您所指,Get或Request变量可以在php中使用。

GET方法 发送附加到页面请求的编码用户信息。页面和编码信息由?分隔。字符。 例如

www.example.com/display.php?id='111'

并在display.php中将其作为$_GET['id']进行检索 他$ _REQUEST变量

PHP $ _REQUEST 变量包含$_GET, $_POST, and $_COOKIE的内容。 PHP $_REQUE ST变量可用于从使用GET和POST方法发送的表单数据中获取结果。