在php中的2个页面之间传递单个变量的多个值

时间:2012-06-07 06:28:56

标签: php session web

我正在为手机开发一个php网站。它的主页上有几部手机的图像,都有一个唯一的ID。(1,2,3,...)。所以当我点击图像时,页面应该被重定向到另一个页面(Details.php)和显示与我刚刚点击的图像相关的图像和信息。我尝试使用会话变量执行此操作,但如果是这样,我将不得不为每个手机使用单独的会话变量。我该如何解决这个问题。请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分:2)

details.php中,您可以添加类似于$phoneId = $_GET["id"]的代码,并将?id=#(其中#是手机的ID)附加到每个链接的末尾。

实施例

列出手机,假设您有一个数据为$phones的数据

foreach ($phones as $phone) {
    echo "<a href='details.php?id=" . $phone["id"] . "'><img src='images/phone" . $phone["id"] . ".png'></a>";
}

确定用户选择的手机(details.php),同时假设您拥有$phones阵列

// Check if an ID was sent
if (empty($_GET["id"])) {
    // The user didn't select a phone
} else {
    // Get the phone ID
    $phoneID = $_GET["id"];

    // Check if the ID is valid
    if (array_key_exists($phoneID, $phones)) {
        // Select the phone
        $phone = $phones[$phoneID];
    } else {
        // The ID is invalid
    }
}

答案 1 :(得分:1)

您可以使用GET变量传递这些信息。

index.php或列出手机的任何地方

<a href="details.php?phoneid=1"><img src="phone01.jpg"></a>
<a href="details.php?phoneid=2"><img src="phone02.jpg"></a>
<a href="details.php?phoneid=3"><img src="phone03.jpg"></a>

并在details.php。你可以用这个

if(isset($_GET['phoneid'])) {
    $phoneid = $_GET['phoneid'];
    switch ($phoneid) {
        case '1':
            echo 'Phone 1';
            break;
        case '2':
            echo 'Phone 2';
            break;
        case '3':
            echo 'Phone 3';
            break;
    }
} else {
    // no value of phoneid
}

另一种更简单的方法是使用mySQL列出所有手机。