Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当你点击不同的链接时,有没有办法改变页面上的某些元素?_Javascript_Php_Html_Css - Fatal编程技术网

Javascript 当你点击不同的链接时,有没有办法改变页面上的某些元素?

Javascript 当你点击不同的链接时,有没有办法改变页面上的某些元素?,javascript,php,html,css,Javascript,Php,Html,Css,我正试图为一家商店建立一个网站。在products页面上,我显示了从数据库加载的所有产品的一般信息。我想创建一个单独的页面,根据用户单击的产品显示不同的文本和图像(我希望用户在单击任何产品时转到此页面)。这是可能的,还是每次添加产品时都需要编写一个新页面 <?php $sql = "SELECT * FROM products;"; $result = mysqli_query($conn, $sql);

我正试图为一家商店建立一个网站。在products页面上,我显示了从数据库加载的所有产品的一般信息。我想创建一个单独的页面,根据用户单击的产品显示不同的文本和图像(我希望用户在单击任何产品时转到此页面)。这是可能的,还是每次添加产品时都需要编写一个新页面

        <?php

            $sql = "SELECT * FROM products;";
            $result = mysqli_query($conn, $sql);
            $resultCheck = mysqli_num_rows($result);

            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            };

            if ($resultCheck > 0) {
                while($row = mysqli_fetch_assoc($result)){
                    echo "<div class='productCard'>";
                    echo '<img src="data:image/jpeg;base64,'.base64_encode($row['image']).'"/>';

                    echo    "<h1>" .$row["name"]. "</h1>
                            <h1>" .$row["stock"]. "</h1>
                            </div>";
                    
                }
            } else {
                echo "0 results";
            }

        ?>

欢迎来到stackoverflow!您可以使用
a
链接将用户重定向到带有id参数的产品详细信息

您可以通过
$\u GET

例如,这是您的代码“Products.php”:


在product.php文件中:

<?php
   $id = $_GET["id"];

   ... and then just use this variable $id for select product
?>

小心SQL注入

我建议使用mysqli\u real\u escape\u string()函数或其他 函数和使用预先准备好的语句


这不仅是可能的,而且是非常常见的功能,许多PHP教程都介绍了这一点。您可能已经使用了一个或多个教程,这些教程没有介绍此功能,但我们始终鼓励您探索更多教程和示例

在较高的层次上,基本上您要做的是让每个链接包含您想要显示的记录的标识符。例如,
echo
的一部分可能包括以下内容:

echo '<a href="product.php?id=' . $row['id'] . '">Click here</a>';
(其他数组用于请求中提交的其他类型的数据。URL查询字符串参数是
$\u GET
的一部分)

然后在数据库查询中使用该值。查询本身可能是这样的(借用了一个关于SQL注入的问题的优秀答案,这对于初学者来说绝对值得一读):

不同的数据库技术以不同的方式将值绑定到查询。但是作为初学者,现在是时候养成绑定值而不是串接字符串的习惯了。这就是前面提到的关于SQL注入的问题/答案成为非常有用的知识的地方


在该循环中(即使只有一条记录,但您可能希望进行一些检查以确保只有一条或至少一条记录,并相应地作出响应),您可以显示有关该记录的数据,类似于您在主页上对多条记录所做的操作。

您可以使用查询字符串变量进行此操作(也称为GET variables)。例如,在链接中,您可以向链接添加,即
?id=5
,这样它就变成了类似于
mysite.com/products?id=5
。然后您可以使用
$\u GET['id']
来获取用户在URL中拥有的任何id

echo '<a href="product.php?id=' . $row['id'] . '">Click here</a>';
<a href="product.php?id=123">Click here</a>
$id = $_GET['id'];
$stmt = $conn->prepare('SELECT * FROM products WHERE id=?');
$stmt->bind_param('i', $id); // 'i' specifies the variable type => 'integer'
$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // Do something with $row
}