【问题标题】:PHP change div display according to form contentPHP根据表单内容改变div显示
【发布时间】:2015-05-26 04:26:52
【问题描述】:

我试图弄清楚如何根据表单输入过滤要显示或不显示的 div 页面。这类似于文章页面,因为每个 div 都显示一张图片和一些链接到整篇文章的文本。这是在页面的顶部:

<form method="POST" action="">
                    Team:
                    <select value="team">
                        <option>Any</option>
                        <option>A</option>
                        <option>B</option>
                    </select>
                    Map: 
                    <select value="map">
                        <option>Any</option>
                        <option>A</option>
                        <option>B</option>
                    </select>
                    Site:
                    <select value="site">
                        <option>Any</option>
                        <option>A</option>
                        <option>B</option>
                    </select>
                    <input type="submit" value="Filter Content">
</form>

在页面的主要部分,每个 div 看起来像这样,具有相同的“item”类。

<div class="item">
                <?php
                    $info = array("A", "B", "A");
                    $display = "block";
                ?>
                <div style="display:<?$display?>">
                <p>text text text</p>
                </div>
</div>

请记住,同一类中连续有多个 div。我给每个 div 一个 $info 数组,用于比较表单输入。但是,我无法弄清楚如何比较两者。我只是将 $display 变量更改为“none”或“block”,具体取决于 $info 变量和表单输入是否匹配。

这是我最麻烦的地方...我不明白如何解析页面中的每个 div。

if(isset($_POST['submit'])) 
                {
                $filter = array($_POST['team'], $_POST['map'], $_POST['site']);
                $html = file_get_contents('example.php');
                $dom = new DOMDocument();
                $dom->loadHTML($html);
                $xpath = new DOMXPath($dom);
                $divContent = $xpath->query('//div[id="item"]');
                foreach ($divContent as $div)
                {
                    if ($filter != $div->$info)
                    {
                        $div->$display = "none";
                    }
                }
                }

我意识到代码有一些错误,但是由于我正在学习 PHP,所以我不知道要更改什么。那么,如何通过比较分配给每个 div 的数组来过滤 div 以显示/不显示?

【问题讨论】:

    标签: php jquery html css


    【解决方案1】:

    嗯,我不认为您真的需要 PHP 来执行此操作,除非您从服务器中提取此内容。如果是这样的话,这听起来像是你在用类别做的事情。再想想,PHP 真的不会让它们显示或隐藏,JS 或 CSS 可以做到。

    PHP 会从服务器中引入信息,仅此而已。例如,如果在您的数据库中有一个名为“类别”的列,您可以对 HTML 执行类似的操作。

    <div id="<?php ** ?>"> CONTENT </div>
    

    ** 将是提取该信息所在类别的信息。从那里,您的 JS 可以显示/隐藏 - CSS 也可以做到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多