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


How to pass a variable generated from foreach loop to another page in PHP

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

这是一个代码示例,用来说明我试图处理的内容。代码可能没有实际代码那么准确,因为实际代码太长,无法显示。

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>

显示.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中检索数据以显示信息?

对于这类任务,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数据获取记录。别忘了在这里增加额外的安全性。您永远不应该信任用户输入。

这是非常基本的东西,所以,我建议你读一点超级全局,直到你感到自信。

  • http://php.net/manual/en/language.variables.superglobals.php
  • http://php.net/manual/en/reserved.variables.get.php

我想到的最简单的解决方案就是将用户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请求,并在该请求中传递相关的user_id。希望它能让你朝着正确的方向开始。

<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
}

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

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

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

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

并在CCD_ 16中将其检索为CCD_$_REQUEST变量

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