Как автоматически заполнить информацию с ранее посещенной страницы - PullRequest
1 голос
/ 26 марта 2012

Я работаю над решением для электронной коммерции для одного из моих клиентов, которое не будет включать какие-либо функции оформления заказа;но вместо этого пользователь будет иметь возможность отправить форму, которая запрашивает цитату.У пользователя также будет возможность щелкнуть дисплей продукта, а затем просмотреть более подробное описание этого продукта.

Вот пример страницы, на которой показаны эти параметры для каждого продукта:
http://dev.welcome2solutions.com/magnetfactory/store/products/category/awareness/

Хотя в данный момент он неактивен, я создал пользовательскую страницу, когда пользователь нажимает «ПРОСМОТРЕТЬ ДЕТАЛИ ПРОДУКТА» - на ней отображается простое изображение вместе с подробной информацией о продукте.Мне нужна пользовательская страница, чтобы каким-то образом заполнить сведения о продукте, который был выбран пользователем.

Как лучше всего вызвать информацию о продукте на странице сведений о продукте, чтобы он автоматически заполнялся?Могу ли я сделать это без необходимости «получать» информацию посредством отправки формы и размещения ее на новой странице?

1 Ответ

2 голосов
/ 26 марта 2012

Мне нужна пользовательская страница, чтобы как-то заполнить сведения о продукте, который был выбран пользователем

Вполне приемлемо создать URL-адрес продукта с соответствующим productId, чтобы на странице сведений можно было вызвать $ _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 способов достичь той же цели, но я думаю, что приведенного выше примера должно быть достаточно, чтобы вы начали в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...