-1

最近、検索フォームを作成して結果をリストに表示しようとしたときに問題が発生しました

    <?php 
        require_once ("Includes/simplecms-config.php"); 
        require_once  ("Includes/connectDB.php");
        include("Includes/header.php");         
     ?>

    <div id="main">
        <div id="searchcontent">
            <?php 
                $querysuccess = FALSE;
                $extsuccess = FALSE;
                if($_GET["query"] != "")
                {
                    echo '<h3>Results for "'.$_GET["query"].'"</h3>';
                    $querysuccess = TRUE;
                }

                if($_GET["ext"] != "*" && $_GET["ext"] != "")
                {
                    echo "<p>Matching extension: *.".$_GET["ext"]."</p>";
                    $extsuccess = TRUE;
                }
                else if($_GET["ext"] == "")
                {
                    echo "<p>No extension specified</p>";
                }
                else
                {
                    $extsuccess = TRUE;
                }

                if($querysuccess == TRUE && $extsuccess == TRUE)
                {
                    doSearch();
                }

                function doSearch()
                {
                    $query = $_GET["query"];
                    $extension = $_GET["ext"];

                    $sql_query = "SELECT * FROM search WHERE";
                    $querycount = 0;

                    $terms = explode(" ", $query);

                    foreach($terms as $word)
                    {
                        $querycount++;
                        if($querycount == 1) {
                            $sql_query .= " description LIKE '%$word%'";
                        }
                        else
                        {
                            $sql_query .= " OR description LIKE '%$word%'";
                        }
                    }

                    if($searchforextension == TRUE)
                    {
                        $sql_query .= "AND extension='$extension'";
                    }

                    mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
                    mysql_select_db(DB_NAME);

                    $sql_query = mysql_query($sql_query);
                    $numrows = mysql_num_rows($sql_query);
                    if($numrows > 0)
                    {
                        echo "<ul>";
                        while($proc_row = mysql_fetch_array($sql_query))
                        {
                            $script_id = $proc_row["id"];
                            $script_name = $proc_row["name"];
                            $script_description = $proc_row["description"];
                            $script_author = $proc_row["author"];
                            $script_authorURL = $proc_row["authorURL"];
                            $script_pathname = $proc_row["filename"];

                            $search_result = "<li><div class='result'>";
                            $search_result .= " <p class='result_title'>$script_name</p>";
                            $search_result .= " <p>$script_description</p>";
                            $search_result .= " <div class='result_footer'>";
                            $search_result .= "     <a href='$script_authorURL'"." class='result_author'>$script_author</a>";
                            $search_result .= "     <a href='/getscript.php?script=$script_id" . "&". "file=$script_pathname' class='result_download'>View</a>";
                            $search_result .= " </div>";
                            $search_result .= "</div></li><br /><br /><br />";
                            echo $search_result;

                        }
                        echo "</ul>";
                    }
                    else
                    {
                        echo "<br/><h2>Unable to find any results matching your query.</h2>";
                    }

                    mysql_close();
                }
            ?>
        </div>
    </div>

    </div>

    <?php 
        include ("Includes/footer.php");
     ?>

私はMicrosoftWebMatrix2.0を使用してPHPスターターテンプレートに基づいてこのサイトを作成しています。私の問題は、複数のオブジェクトが表示されると、前のオブジェクトと重なり、レイアウト全体が台無しになることです。

必要に応じてCSSの一部を投稿できますか?

Wesley Murchのアドバイスに従った後、私は今、別の問題を抱えています

現在機能していないものhttp://img21.imageshack.us/img21/4498/screenshotgbf.png

4

1 に答える 1

3

無効なHTMLを生成しています。

ここで、正しくない<a>タグを閉じます。</p>

$search_result .= "     <a href='/getscript.php?script=$script_id" . "&". "file=$script_pathname' class='result_download'>View</p>";

<br>ここでは、タグを直接の子として追加しますが、その直接の子<ul>は無効です。

$search_result .= "</div></li><br /><br /><br />";

<ul>またはの唯一の有効な直接の子<ol>はです<li>

また、HTMLの上部で2つのdivを開きますが、下部に3つの終了タグがあります。

無効なHTMLは、レイアウトが壊れた主な原因の1つです。今後、HTMLやCSSをデバッグするための最初の手段として、このツールを使用してください。

http://validator.w3.org/

于 2012-12-23T00:43:08.783 に答える