当我点击按钮并存储在会话变量中时,我如何获得链接


How can i get link when i click on button and stored in session variable

我有foreach循环,循环时输出数组中的项。这很好,但我想在会话变量中为每个项目存储一些东西,这样我就可以在其他地方使用这些信息,而无需刷新页面。我试图在foreach循环中创建会话变量,但当然,每次循环通过不同的项目时,变量都需要有不同的数据。假设在下面的代码中,我有三个不同的产品链接,当我点击按钮时,我如何获得该特定产品的特定链接存储在会话变量中,而不重新加载页面。当我从一个页面重定向到另一个页面时,我使用了会话概念中会话变量中的链接。

session.php

<?php
$a=array(
    array("Htc 526 black","htc.jpg",23000,"http://www.flipkart.com"),
    array("Iphone 6s","apple.jpg",43000,"http://www.amazon.com"),
    array("Sony xperia c3 dual","sony.jpg",19000,"http://www.snapdeal.com")
);
foreach($a as $value)
{
    session_start();
    $_SESSION['link']=$value[3];
?>
<script>
    function redirect()
    {
        window.location="redirection.php";
    }
</script>
<button onclick="redirect();">Click Me</button>
<?php
}
?>

重定向.php

<?php
if(session_id()=="")
{
    session_start();
}
$deep_link=$_SESSION['link'];
echo $deep_link;?>

我的查询是,当我从一个页面重定向到另一个页面时,当我回显会话变量(产品链接)时,它只回显最后一个值。相反,它接受特定的产品链接

您的数组分配只有一个房间,所以像这样为多个数组创建递增数。//双参数制作式

<?php
$i = 0; //init number for ++
$a=array(
array("Htc 526 black","htc.jpg",23000,"http://www.flipkart.com"),
array("Iphone 6s","apple.jpg",43000,"http://www.amazon.com"),
array("Sony xperia c3 dual","sony.jpg",19000,"http://www.snapdeal.com")
);
foreach($a as $value)
{
session_start();
$_SESSION['link'][$i]=$value[3];    
?>
<script>
function redirect(i,phone)
{
    window.location="redirection.php?d="+i+"&pno="+phone;   //can use one more parameter like this ...
}
</script>
<button onclick="redirect(<?= $i ?>,'<?= $value[0]; ?>');">Click Me</button> //can add parameter by ',' as you want
 //eg link structure =><button onclick="redirect(1,'Htc 526 black');">Click Me</button>
<?php
$i++;  //increase array number
}
?>

那么您应该调用重定向.php

<?php
if(session_id()=="")
{
session_start();
}
$i = $_GET['d'];
$p = $_GET['pno'];//call by parameter name
$deep_link=$_SESSION['link'][$i];
echo $deep_link."</br>".$p;
}
?>