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


How to auto-populate info from a previously-visited page

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

下面是一个示例页面,显示了每个产品的这些选项:
http://dev.welcome2solutions.com/magnetfactory/store/products/category/awareness/

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

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

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

使用关联的productId构建产品的URL是完全可以接受的,这样您就可以在详细信息页面上调用$_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); 
....

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