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


Passing multiple values for a single variable between 2 pages in php

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

提前谢谢。

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

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

索引.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>

在细节上.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列出所有手机。