根据点击的链接显示特定内容

时间:2016-03-24 17:57:20

标签: php

所以我有一个画廊网页,显示包含图像的所有用户文件夹(像Behance或Pinterest这样的东西):

<div id="project_display">

<?php
$img_title_display = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' ORDER BY title");
while($row = $img_title_display->fetch_assoc())
{   
?>

<a href="#openModal2" id="Modal"><p><?php echo ($row['title']);?></p></a>

<?php   
}
?>
</div>

然后,点击任何文件夹后,会出现模态窗口,您可以看到文件夹的内容:

<div id="openModal2" class="modalDialog">
<div>
<a href="#close" title="Close" class="close">X</a>

<?php
$img_desc_display = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' ORDER BY title");
$img_details=mysqli_fetch_array($img_desc_display,MYSQLI_ASSOC);
?>

<h2><?php echo ($img_details['title']); ?></h2><br/>
<p><?php echo($img_details['description']); ?></p>
<p><?php echo($img_details['category']); ?></p>

</div></div>

问题是现在在每个文件夹中它显示相同的内容(数据库的第一行)。如何指定链接以便每个文件夹都有适当的内容?

2 个答案:

答案 0 :(得分:1)

好的,所以如果你想用CSS3和HTML5做这个,你必须为每个文件夹创建一个模态,Safari,Firefox,Edge和IE都不支持这个模式。因此,如果您可以使用ajax而不是此方法。

<div id="project_display">

<?php
$i = 0;
$img_title_display = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' ORDER BY title");
while($row = $img_title_display->fetch_assoc())
{   
?>
<a href="#openModal<?php echo $i; ?>" id="Modal">
    <p><?php echo ($row['title']);?></p>
</a>

<?php  $i++; 
}
?>
</div>

情态动词:

<?php
$i = 0;
$img_details = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' ORDER BY title");
while($row = $img_details->fetch_assoc())
{   
?>
<div id="openModal<?php echo $i; ?>" class="modalDialog">
    <div>
        <a href="#close" title="Close" class="close">X</a>

        <h2><?php echo ($row['title']); ?></h2><br/>
        <p><?php echo($row['description']); ?></p>
        <p><?php echo($row['category']); ?></p>

    </div>
</div>

<?php  $i++; 
}
?>

答案 1 :(得分:0)

为了显示您单击的文件夹内容,您必须以模式过滤查询,例如:

$img_desc_display = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' AND category='$category' ORDER BY title");

此查询将要求您在$category变量中存储标识您的类别的任何内容。

我怀疑你有一个'静态'模态,只在第一页加载时填充。因此,您需要将所有逻辑移动到单独的页面,并在模式中从iframe(通过GET参数单击的传递类别)显示该页面。

很难说你需要做什么才能让所有事情都工作而不会看到代码的核心部分(例如你如何处理模态),但我可以举例说明它如何在没有模态的情况下工作。

因此,在您看到所有类别的页面中:

<div id="project_display">

<?php
$img_title_display = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' ORDER BY title");
while($row = $img_title_display->fetch_assoc())
{   
?>

<a href="viewCategory.php?category=<?php echo ($row['category']);?>"><p><?php echo ($row['title']);?></p></a>

<?php   
}
?>
</div>

所以你只需要通过GET参数传递类别,然后在你必须创建的新页面中传递(如果你的模态可以在iframe中使用) viewCategory.php

<?php
$category = mysql_real_escape_string( $_GET["category"] )
$img_desc_display = mysqli_query($db, "SELECT DISTINCT title, description, category FROM images WHERE user_id='$user_id' AND category='$category' ORDER BY title");

while($img_details = $img_desc_display->fetch_assoc())
{   
?>

<h2><?php echo ($img_details['title']); ?></h2><br/>
<p><?php echo($img_details['description']); ?></p>
<p><?php echo($img_details['category']); ?></p>

<?php   
}
?>