【问题标题】:PHP to take information from one page to anotherPHP 将信息从一个页面转移到另一个页面
【发布时间】:2011-11-15 19:29:28
【问题描述】:

我对 php 很陌生,我有这个显示图像的购物车。来自 mysql 数据库的产品名称和详细信息。它的代码如下:

<table border="0" cellpadding="2px" width="600px">
    <?
        $result=mysql_query("select * from products");
        while($row=mysql_fetch_array($result)){

    ?>
    <tr>
        <td><img src="<?=$row['picture']?>" /></td>
        <td>    <b><?=$row['name']?></b><br />
                <?=$row['description']?><br />
                Price:<big style="color:green">
                    £<?=$row['price']?></big><br /><br />
                <input type="button" value="Add to Cart" onclick="addtocart(<?=$row['serial']?>)" />
        </td>
    </tr>
    <tr><td colspan="2"><hr size="1" /></td>
    <? } ?>
</table>

我想要的是用户能够单击产品的图片/名称,在该产品中它应该将用户转移到显示所选产品的另一个页面。

顺便说一下,我的mysql表由以下字段组成:

连续剧 姓名 描述 价格 图片

我应该怎么做呢?谢谢你

【问题讨论】:

  • 只是做一个链接? &lt;a&gt;?我错过了什么吗?
  • @Brad nope/+1,你什么都错过了..
  • 建立链接?你的意思只是一个超链接到另一个页面?如何?不可能那么容易...
  • @Jahed,这怎么可能不那么容易?
  • 我在哪里插入 ??

标签: php mysql data-transfer


【解决方案1】:

制作这样的链接:

<a href="product.php?product_id=<?=$row['serial']?><?=$row['name']?></a>

然后在product.php页面插入:

$id = $_GET['product_id'];
$result=mysql_query("select * from products WHERE serial = '$id'");
$row=mysql_fetch_array($result);

在该代码下,您可以添加图片和价格等内容:)

产品序列号保存在 URL (product_id) 中,然后由 $_GET 变量调用。 SO product_id=1 将加载序列号为 1 的产品。

如果您查看当前页面的 URL,它的中间有数字 8142009。如果您将其更改为 8142008,它将在您之前加载上一个问题。此示例的工作方式完全相同。

【讨论】:

  • 感谢彼得,我已按照您所说的进行操作,但不幸的是您无法单击该名称。由于一些奇怪的奇怪原因没有链接。以下是我的 php 代码: =$row['name']?>
  • 抱歉,有一个错字,把它从herf改成href lol
【解决方案2】:

您需要使用 POST 或 GET 参数来执行此操作。

我将把展示产品的实际逻辑留给您,但如果您查看网址,它们有时采用http://www.example.com/index.php?foo=bar&stuff=no 的形式。在这种情况下,“?”之后的所有内容被称为查询字符串,并有一个“&”分隔的变量列表。在这种情况下,有两个变量 foo 和 stuff,它们的值分别为 bar 和 no。

这也将调用一个名为“index.php”的脚本。 PHP 公开了一个名为$_GET 的超全局变量(即神奇地随处可用的变量)。这是一个包含 GET 变量名称及其值之间的映射的数组。在这种情况下,它将是数组("foo"=&gt;"bar", "stuff"=&gt;"no"),因此您可以使用$_GET['foo']$_GET['stuff'] 访问所需的值。

POST 参数相似,但略有不同。这些是从 HTML 表单提交的(“method”属性设置为“post”)。在这种情况下,超全局 $_POST 以相同的方式填写,但数组键是 HTML 中输入元素的名称,它们的值是相应元素的值,因此 &lt;input type="hidden" name="foo" value="bar" /&gt; 将在$_POST 名为“foo”,值为“bar”。

据此,您应该能够很好地实现您所需要的。

【讨论】:

  • 此外,还有其他有用的超全局变量,例如 $_COOKIE$_SESSION,但我会将这些内容留给您阅读,因为它们并非 100% 适用于该问题。跨度>
【解决方案3】:

您可能需要在 mysql 表中创建一个新字段来存储产品页面 url,然后执行以下操作

<table border="0" cellpadding="2px" width="600px">
    <?
        $result=mysql_query("select * from products");
        while($row=mysql_fetch_array($result)){

    ?>
    <tr>
        <td><a href="<?=$row['product_page']?>"><img src="<?=$row['picture']?>" /></a></td>
        <td>    <b><?=$row['name']?></b><br />
                <?=$row['description']?><br />
                Price:<big style="color:green">
                    £<?=$row['price']?></big><br /><br />
                <input type="button" value="Add to Cart" onclick="addtocart(<?=$row['serial']?>)" />
        </td>
    </tr>
    <tr><td colspan="2"><hr size="1" /></td>
    <? } ?>
</table>

或者你可以很容易地使用彼得回答哈哈

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签