Php 基于所选内容显示HTML

Php 基于所选内容显示HTML,php,Php,我正在做这个关于OOP的PHP教程,我试图将基本培训中的过程代码融入其中,看看我是否真的学到了基础以外的东西,我被卡住了 在我命名为Blog的类中有两个函数: public function navigation($selected_subject, $selected_page) { $output = "<ul class=\"subjects\" id=\"accordion\">"; $subject_set = $this->get_a

我正在做这个关于OOP的PHP教程,我试图将基本培训中的过程代码融入其中,看看我是否真的学到了基础以外的东西,我被卡住了

在我命名为Blog的类中有两个函数:

public function navigation($selected_subject, $selected_page) {
        $output = "<ul class=\"subjects\" id=\"accordion\">";
        $subject_set = $this->get_all_subjects($public);
        while ($subject = mysqli_fetch_array($subject_set)) {
            $output .= "<li";
            if ($subject["id"] == $selected_subject['id']) { $output .= " class=\"blogselected\""; }
            $output .= ">{$subject["menu_name"]}</li>"; 
            $page_set = $this->get_pages_for_subject($subject["id"], $public);
            $output .= "<ul class=\"pages\">";
            while ($page = mysqli_fetch_array($page_set)) {
                $output .= "<li";
                if ($page['id'] == $selected_page['id'] ) { $output .= " class=\"blogselected\""; }
                $output .= "><a href=\"../public/blog_index.php?page=" . urlencode($page["id"]) .
                    "\">{$page["menu_name"]}</a></li>";
            }
            $output .= "</ul>";

        }
        $output .= "</ul>";
        return $output;
    }

public function blog_page($selected_page){ 
        if ($selected_page) {
            echo "<h2>" . $selected_page['menu_name'] . "</h2>";
            echo "<div class=\"page-content\">";
                echo  $selected_page['content'];
            echo "</div>";
        } else {
            echo "<h2>Welcome to Widget Corp</h2>";
        }
    }
公共功能导航($selected\u subject,$selected\u page){
$output=“
    ”; $subject\u set=$this->获取所有主题($public); 而($subject=mysqli\u fetch\u数组($subject\u set)){ $output.=“{$subject[“menu_name”]}”; $page\u set=$this->get\u pages\u for_subject($subject[“id”],$public); $output.=“
      ”; 而($page=mysqli\u fetch\u数组($page\u set)){ $output.=“”; } $output.=“
    ”; } $output.=“
”; 返回$output; } 公共功能博客页面($selected页面){ 如果($selected\u页面){ 回显“$selected_page['menu_name']”; 回声“; echo$selected_页面['content']; 回声“; }否则{ echo“欢迎来到Widget公司”; } }
索引页上的这段代码:

   <?php 
        $blog = new Blog; 
        global $selected_page;
    global $selected_subject;
   ?>
   <div class="blog">
        <div class="blogpost">
            <?php echo $blog->blog_page($selected_page); ?>
        </div>
        <div class="blognav">
            <?php echo $blog->navigation($selected_subject, $selected_page); ?>
        </div>
    </div>


代码部分起作用。带有主题和子页面的导航显示良好,当单击链接时,id“?page=1”会传递到url,但问题是代码没有将类“blogselected”添加到活动链接,并且在单击链接时也不会显示内容。在内容区域中显示的唯一内容是第二个函数中else条件下的h2“Welcome to Widget Corp”,因此我相信变量$selected_subject和$selected_page可能是导致问题的原因,但我自己无法解决。我花了无数个小时试图解决这个问题,我几乎完全放弃了。我到底错过了什么?

在您的
导航方法中,
$public
来自哪里;这是一个类变量吗?似乎没有检索到您的参数。将此代码放在索引页的顶部:
$selected\u page=$\u GET['page']
$selected\u subject
来自哪里?有两个导航功能,一个是公共的,一个是网站的管理部分。我发布的函数是public_导航,第三个参数是$public。函数public\u导航($selected\u subject,$selected\u page,$public=true)