Php 如何从以前访问过的页面自动填充信息

Php 如何从以前访问过的页面自动填充信息,php,e-commerce,Php,E Commerce,我正在为我的一个客户开发一个电子商务解决方案,它不涉及任何类型的结账功能;但是,用户可以选择提交请求报价的表单。用户还可以选择单击产品显示,然后查看有关该产品的更详细说明 下面是一个示例页面,显示了每个产品的这些选项: 虽然它目前还没有激活,但我为用户单击“查看产品详细信息”时创建了一个自定义页面,它将显示一个简单的图像以及有关产品的一些详细信息。我需要自定义页面以某种方式填充用户选择的产品的产品详细信息 在产品详细信息页面上调用产品详细信息以便自动填充的最佳方式是什么?我可以这样做,而不必通

我正在为我的一个客户开发一个电子商务解决方案,它不涉及任何类型的结账功能;但是,用户可以选择提交请求报价的表单。用户还可以选择单击产品显示,然后查看有关该产品的更详细说明

下面是一个示例页面,显示了每个产品的这些选项:

虽然它目前还没有激活,但我为用户单击“查看产品详细信息”时创建了一个自定义页面,它将显示一个简单的图像以及有关产品的一些详细信息。我需要自定义页面以某种方式填充用户选择的产品的产品详细信息

在产品详细信息页面上调用产品详细信息以便自动填充的最佳方式是什么?我可以这样做,而不必通过提交表格“获取”信息并将其发布到新页面吗

我需要自定义页面以某种方式填充用户选择的产品的产品详细信息

使用关联的productId构建产品的URL是完全可以接受的,这样您就可以在详细信息页面上调用$\u GET['id']。在详细信息页面上本地化productId后,可以通过productId向产品数据库发出查询,以获取关联的产品数据。显然,这是一个比试图通过url传递所有产品数据更好的解决方案

例如:

// Results page
//  You can build links similar to the following
//  This assumes you have a product object from which you can get id and name
<a href="/product/detail/<?php echo $product->getId() ?>"><?php echo $product->getName() ?></a>

// Detail page

// Localize id
$productId = $_REQUEST['id']; // I prefer to use $_REQUEST vs $_GET

// Create our database object (dbo)
$dsn = 'mysql:dbname=mydbname;host=127.0.0.1';
$user = 'myusername';
$pass = 'mypass';

try {
    $dbo = new PDO($dsn, $user, $pass);
} catch (Exception $e) {
    echo 'Unable to connect: ' . $e->getMessage();
}

// Construct your read query
$sql = "SELECT * FROM my_product_table WHERE id = :productId";

// Prepare query (avoids nasty things like sql injection by properly escaping 
//  passed in parameters (:productId)
$stmt = $dbo->prepare($sql);

// Bind your local variable to the sql statement
$stmt->bindValue(':productId', $productId, PDO::PARAM_INT);

// Execute query
$stmt->execute();

// Localize query results (PDO::FETCH_OBJ will turn $product into a stdObject)
$product = $stmt->fetch(PDO::FETCH_OBJECT);

// Now you have access to the product data as it is stored in your database
var_dump($product->name);
var_dump($product->category); 
....
//结果页
//您可以构建类似于以下内容的链接
//这假设您有一个产品对象,可以从中获取id和名称
//详细信息页
//本地化id
$productId=$_请求['id'];//我更喜欢使用$\u REQUEST vs$\u GET
//创建我们的数据库对象(dbo)
$dsn='mysql:dbname=mydbname;主机=127.0.0.1';
$user='myusername';
$pass='mypass';
试一试{
$dbo=新PDO($dsn,$user,$pass);
}捕获(例外$e){
echo“无法连接:”。$e->getMessage();
}
//构造您的读取查询
$sql=“从my_product_表中选择*,其中id=:productId”;
//准备查询(通过正确转义避免像sql注入这样的讨厌的事情
//传入的参数(:productId)
$stmt=$dbo->prepare($sql);
//将局部变量绑定到sql语句
$stmt->bindValue(':productId',$productId,PDO::PARAM_INT);
//执行查询
$stmt->execute();
//本地化查询结果(PDO::FETCH_OBJ将$product转换为stdObject)
$product=$stmt->fetch(PDO::fetch_对象);
//现在,您可以访问存储在数据库中的产品数据
变量转储($product->name);
变量转储($product->category);
....

我建议你仔细阅读(上面的内容是基于此)对于您的数据库访问。有100种方法可以实现相同的目标,但我认为上面的示例应该足以让您朝着正确的方向开始。

您有什么反对只在url中传递产品id的意见吗?尽管每个产品url都是通过Marke动态创建的,但我这样做一点问题都没有所以可能有一个更具体的问题是“如何动态地创建产品url ID?”在插件中,他们预先将链接定义为一个变量。例如,$link=或类似的东西。我可以在url引用中使用php动态调用该url吗?您可能需要阅读您正在使用的软件的文档。他们在演示中解决了这一问题,因此有一种方法:也可以阅读一般更好的aproach用于创建url。不知道具体的软件,只有你才能回答。迈克,这听起来可以接受。那么你能用一个例子更具体一点吗?我理解这个想法,但甚至不知道如何开始。我不需要确切的答案,但你可能想到的任何简单的例子。另外,我不能简单地称这个产品为url dyna吗通过在url中插入PHP引用,增加了一个基本示例,说明如何访问驻留在数据库中的上述数据。Mike,太好了。有一个问题……我的产品在wordpress中存储为帖子。我不知道对象ID是什么?是帖子ID,还是标题?这些对你有用吗示例?您是否在使用wordpress的ecomm插件?是的,我是。这是我目前的位置。在插件文件中,我可以添加?在url的末尾添加?post_id,但它根本不调用id。我可能完全搞错了。如果您将鼠标悬停在我的产品布局图上,您可以看到url。