如何在菜单选项的点击上显示特定类别的帖子


How to display posts of a specific category onclick of menu options?

我有两个表,PostCategory

文章

   pid   title    result    content      cid   
   1    Option1    Opt      content1      2   
   2    Option2    Opt      content2      2   
   3    Option3    Opt      content3      3   

   cid  cname   
   1     Cat 1    
   2     Cat 2    
   3     Cat 3   

这是我的insert.php

mysql_connect('localhost','root','');
mysql_select_db("database") or die("Unable to select database");
$title=$_POST['post_title'];
$result=$_POST['post_result'];
$content=$_POST['post_content'];
$sid=$_POST['cid'];
$date=$_POST['date'];
$insertquery="INSERT INTO review (post_title,post_result,post_content,cid,date)
          VALUES('$title','$result','$content',$sid,NOW())";

$result=mysql_query($insertquery);
if(! $result )
{
  die('Could not enter data: ' . mysql_error());
}
else {
        echo "Entered data successfully'n";
        header('Location:home.php');
    }    

这是我的cat.php显示特定类别的帖子。

$link = mysql_connect("localhost","root","");
mysql_select_db("database");

$query="SELECT * FROM category WHERE cid='$cid'";
 $result = mysql_query($query) or die("Query to get data failed with error:  ".mysql_error());
while($row = mysql_num_rows($result)) { 
echo    //details goes here
}    

这是我主页上的分类菜单列表。

<ul>            
<li><a class="my-button" href="#">Cat 1</a></li>
<li><a class="my-button" href="#">Cat 2</a></li>
<li><a class="my-button" href="#">Cat 3</a></li>
</ul>    

这是javascript。

<script>
$(document).ready(function() {
$('body').on('click', '.my-button', function() {
   $("#display").load("cat.php");
   });
});
</script>    

所有内容都正确插入到数据库中。但是我不能显示特定类别的文章。

我给出了完整的代码。我想要的是,当我在主页上点击1类或2类或3类时,我需要在#displaydiv中显示所选类别的帖子表中的所有数据。

我得到一个错误说:

cid是未定义变量

请帮我找到正确的代码。

这是因为查看查询中使用的脚本$cid没有在任何地方定义。值得称赞的是,至少有错误报告。下次您真的应该阅读并理解您得到的错误消息,因为这通常会告诉您问题所在。

另外,你真的需要考虑学习mysqli或PDO。mysql_*已废弃,不应再使用。你也有严重的SQL注入漏洞,所以你应该仔细研究一下该怎么做。

我觉得你走错路了。您没有向cat.php发送任何数据,因此$cid未定义。将类别id发送到load.php以获得有效的结果。比如

$("#display").load("cat.php",{cid: yourvalue});