使用会话将值从page1.php传递到page2.php

  • 本文关键字:php page2 page1 会话 php html
  • 更新时间 :
  • 英文 :


我想通过使用会话变量从page1.php到page2.php传递值。然而,我还没有成功。不是在page2.php上只显示一个名称(单击的名称),而是显示page1.php中的所有名称。这是我的代码,

page1.php

<?php
session_start();
$name_data = array();
?>
<?php 
include('dbase.php');
// get the records from the database
if ($result = $mysqli->query("SELECT * FROM notes WHERE categoryname='Humanities' ORDER BY noteid"))
{
// display records if there are records to display
if ($result->num_rows > 0)
{
while ($row = $result->fetch_object())
{  
?>
<div class="vdo-list">
<div class="vdo-title"><a href="preview.php">
<?php
$name_data[] = $row->notename;
echo "<h3>" .$row->notename. "</h3>";
?>
</div></a>
<?
$_SESSION['uname'] = $name_data;
?>

page2.php

<?php
session_start();
?>
  <div class="heading6">
        <h1>
        <?php
        if(count($_SESSION['uname'])>0)
        {
        foreach ($_SESSION['uname'] as $uname)
        {
        echo $uname;
        }
        }     
        ?>
        </h1></div>
谁能指出我做错了什么?

我认为您不需要在会话中保存所有结果。您可以使用$_GET在第二页成功查询和选择您想要的行。

对于您在这里使用的内容,假设单击的链接具有参数' name ',您可以在会话数组中检查并仅显示此项目:

foreach ($_SESSION['uname'] as $uname) {
    if ($uname == $_GET['name']) {
        echo $uname;
    }
}
编辑:

在链接中传递参数。在循环中可以添加:

echo '<a href="page2.php?name='.$row->notename.'">'.$row->notename.'</a>';

最后,这里有一个完美的答案,

page1.php

 <?php
$_SESSION['uname'] = $row->notename;
echo '<h3><a href="preview.php?name='.$row->notename.'">'.$row->notename.'<h3></a>';
?>

page2.php

 <?php
include ('dbase.php');
       if(count($_SESSION['uname'])>0)
    {
        if($uname = $mysqli->query("SELECT * FROM `notes` WHERE `notename`='".$_GET['name']."'"))
        {
        $row=mysqli_fetch_array($uname,MYSQLI_ASSOC);
   // $result=$uname->fetchAll(PDO::FETCH_ASSOC);
    //foreach ($result as $row)
    //{
    echo $row['notename'];
    //}
    }    
    } 
    ?>

最新更新