您是否可以使用单个产品布局页面显示产品一旦点击?

时间:2013-07-22 16:27:27

标签: php html mysql layout product

我想使用一个带有预定义div,布局等的单页作为基础,这样当从其他地方点击产品时,它会将该产品信息加载到页面上?

他们这样做我不能坐在这里直到2020年左右仍然在页面上输入产品信息。

EDIT *************

function product ()
{
    $get = mysql_query ("SELECT id, name, description, price, imgcover FROM products WHERE size ='11'");
    if (mysql_num_rows($get) == FALSE)
    {
        echo " There are no products to be displayed!";
    }
    else
    {
        while ($get_row = mysql_fetch_assoc($get))
        {
            echo "<div id='productbox'><a href=product1.php>".$get_row['name'].'<br />
            '.$get_row['price']. '<br />
            ' .$get_row['description']. '<br />
            ' .$get_row['imgcover']. "</a></div>" ;
        } 
    }
}

此外,我对该代码的一个问题是<a href>标记仅转到product1.php。任何想法我如何能够链接到空白的产品布局页面,该页面将填充用户刚刚点击的产品信息,基本上链接到空白布局页面上的自身。

谢谢任何帮助都会很棒! 谢谢Maxyy

3 个答案:

答案 0 :(得分:0)

由于您没有代码,因此这是执行此操作的一般方法。您想要的是产品页面的模板

  1. 查询数据库
  2. 将数据加载到变量
  3. 制作一个脚本,将数据从变量打印到产品页面
  4. <强> somescript.php

    <?php
    $productid = $_REQUEST['productid']; //Of course do sanitation 
                                         //before using get,post variables
    
    //though you should be using mysqli_* functions as mysql_* are depreciated
    $result = mysql_query("select * from sometable where id='{$productid}"); 
    
    $product = mysql_fetch_object($result);
    
    include("productpage.php");
    

    <强> productpage.php

    <div class="Product">
      <div class="picture"><img src="<?php echo $product->imghref;?>" /></div>
      <div class="price"><?php echo $product->price;?></div>
    </div>
    
    等等等等。包含的脚本使用当前在调用函数范围内的任何变量

    如果您想将产品加载到同一页面而不进行其他页面加载,则需要使用ajax。哪个是使用XHR请求从服务器返回数据的javascript代码。您可以使用纯javascript或jQuery之类的库来简化使用$ .ajax调用执行xhr请求的过程。

答案 1 :(得分:0)

我知道这个问题已经在4年前被问过了,但由于没有任何答案被标记为正确,我认为我可能会介入。

首先,让我们从mysql升级并使用mysqli - 我个人最喜欢的,你也可以使用PDO。您是否尝试使用$_GET来提取您想要查看的任何产品的ID,然后将它们一起显示或一次显示一个?

看起来像这样:

<?php // start by creating $mysqli connection
$host = "localhost";
$user = "username";
$pass = "password";
$db_name = "database";

$mysqli = new mysqli($host, $user, $pass, $db_name);

if($mysqli->connect_error)
{
    die("Having some trouble pulling data");
    exit();
}

假设连接成功,我们继续检查是否设置了ID。在这种情况下,我通过假定为id的URL参数进行检查。你可以使它更复杂,或采取不同的方法。

if(isset($_GET['id']))
{
    $id = htmlentities($_GET['id']);

    $query = "SELECT * FROM table WHERE id = " . $id;
}
else
{
    // if no ID is set, just bring all the results down
    // then you can modify how, and which table the results
    // are being used.
    $query = "SELECT * FROM table ORDER BY id"; // the query can be changed to whatever you would be prefer
}

一旦我们确定了查询,我们就开始查询数据库以获取信息。我有三个步骤:

检查查询&gt; 检查表以获取记录&gt; 循环遍历角色并为每个角色创建一个对象。

if($result = $mysqli->query($query))
{
    if($result->num_rows > 0)
    {
        while ($row = $result->fetch_object())
        {
            // you can set up your element here
            // you can set it up in whatever way you want
            // to see your product being displayed, by simply
            // using $row->column_name
            // each column becomes an object here. So your id
            // column would be pulled using $row->id
            echo "<h1>" . $row->name . "</h1>";
            echo "<p>" . $row->description . "</p>";
            echo "<img src=" . $row->image_path . ">";
            // etc ...
        }
    }
    else
    {
        // if no records match the selected ID
        echo "Nothing to see here...";
    }
}
else
{
    // if there's a problem with the query
    echo "A slight problem with your query.";
}
$mysqli->close(); // close connection for safety
?>

我希望这可以回答你的问题,如果你仍然坚持这个问题,可以帮助你。这是你可以用MySQLi和PHP做的基本框架,你总是可以使用一些Ajax来使页面更具交互性和用户友好性。

答案 2 :(得分:0)

点击时向页面添加内容需要在Javascript或JQuery中完成。

  1. 您可以使用ajax调用从php页面中检索所需的数据,语法为here
  2. 或者您也可以在JQuery中使用.load()函数将php页面加载到div内容,语法为here