0
こんにちは私はPHPの初心者であり、電子商取引のページを開発することを学んでいます。 私が直面している問題は、私が製品でグリッドを持つことができるということです。今は商品イメージをクリックするか、「info」というボタンをクリックして、単一の商品ごとにページを作成するのではなく、情報を表示します。ページに移動しますが、ヘッダーとフッターだけが表示され、 は表示されません。バーのリンクは製品のIDを取得します。商品情報を表示する
私はそうここにMVCを使用していたコードは次のとおりです。
Model: ProductDataSet.php
public function fetchProductInformation($productID) {
$sqlQuery = 'SELECT * FROM product WHERE (productID = :productID)';
$statement = $this->_dbHandle->prepare($sqlQuery); // prepare a PDO statement
$statement->execute(); // execute the PDO statement
$dataSet = [];
while ($row = $statement->fetch()) {
$dataSet[] = new ProductData($row);
}
return $dataSet;
}
View: product
<?php
session_start();
if(!isset($_SESSION['emailaddress'])){
}
?>
<?php require('template/header.phtml') ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<br>
<?php foreach ($view->productDataSet as $productData) {
if (count($view->productDataSet)>0) {
echo '<div class = "col-xs-6 .col-sm-3">';
echo '<a href="product.php?id=' . $productData->getProductID(). '"><img src="images/'. $productData->getPhoto(). ' "alt="no picture" height = "" width = ""/> </a>' ."\n";
echo "<p>" . $productData->getTitle(). "</p>\n";
echo "<p>" . $productData->getDescription(). "</p>\n";
echo "<p>£" . $productData->getPrice(). ".000</p>\n";
// echo '<a class="btn btn-primary" type="button" href =productDetails.php?product='.$product->getProduct().'>view</a>';
echo '<a href="productDetails.php?ProductID='. $productData->getProductID().'><button type="button" class="btn btn-info">Info</button></a>';
echo '<a href="product.php"><input type="submit" class = "btn btn-primary " value="Add to basket"></a>';
// echo '<a href="/productDetails.php?id='.$productData->getProductID().'">View details</a>';
// echo '<a class="btn btn-primary" type="button" href =productDetails.php?product='.$product->getProductID().'>view</a>';
echo "</div>";
}
}
?>
</form>
<?php require('template/footer.phtml') ?>
VIEW: ProductDetails
<?php require('template/header.phtml') ?>
<h3>Welcome to Page1</h3>
<?php
echo "<p>" . $productData->getTitle(). "</p>\n";
?>
<?php require('template/footer.phtml') ?>
Controller : product
<?php
require_once('Models/ProductDataSet.php');
$view = new stdClass();
$view->pageTitle = 'Products';
$view->productDataSet = null;
$productDataSet = new productDataSet();
$view->productDataSet = $productDataSet->fetchAllProducts();
// $view->watchDataSet = $watchDataSet->fetchWatch($_GET['id'])[0];
require_once('Views/product.phtml');
Controller Product Details
<?php
$view = new stdClass();
$view->pageTitle = 'Page1';
require_once('Models/ProductDataSet.php');
$productDataSet = new productDataSet();
if(isset($_GET['productID']))
{
$productID = $_GET['productID'];
$view->productDataSet =$productDataSet->fetchProductInformation($productID);
}
require_once('Views/product.phtml');?>
はまだ、何も私は、これは製品が 上でクリックされたときに表示されるリンクである気づいていない////////////////// //// productDetails.php?ProductID = 2>
私は私の答えに追加しました。 – coderodour
リンクが大丈夫ですが、コンテンツはありません。ありがとうございました。あなたが私に与えた提案に変更しました。 –