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

时间:2015-12-08 03:38:06

标签: javascript php session

我有foreach循环,当循环输出数组中保存的项目。这很好,但我想在会话变量中存储每个EACH项目的一些东西,所以我可以在其他地方使用这些信息而不刷新页面,我正在尝试在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
}
?>

redirection.php

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

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

1 个答案:

答案 0 :(得分:0)

你的数组分配只有一个房间,所以为这样的多个数组创建增加数量。 //两个参数制作风格

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

然后你应该调用redirection.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;
}
?>