尝试从不同的文件加载具有嵌套div的div

时间:2013-11-12 02:46:35

标签: php jquery html ajax

我需要让我的index.php从home.php加载一些内容。 在index.php中,有一个div class =“content”,其中包含一个对话框(用于用户登录)。 在home.php中,还有一个div class =“content”,它包含一些p和表(通过查询数据库动态创建表)。 当用户点击index.php上的提交时,我想用来自home.php的相同div(包括所有表等)替换div class =“content”的内容。问题是当我加载新的div时,我丢失了所有嵌套的div(包括php创建的行和列),这是我需要的。任何帮助将非常感激。提前谢谢。

这是index.php中的html:

<div class="content" id="first">
        <div id="login">
            <p>Username:
                <input type="text" id="loginName" Required>
            </p>
            <p>Password:
                <input type="password" id="loginPass" Required>
            </p>
            <span id="loginError">Please enter a username AND password</span>

        </div>
</div><!--content=first-->

来自index.php的jquery:

$("#regButton").on('click',function(){
     $(".content").load("home.php .content >*");
});
来自home.php的

html:

<div class="content" id="home">
    <div id="left">
        <div id="top">
        </div>
        <div id="bottom">
            <h2>Grades</h2>
        </div>
    </div>
    <div id="center">
        <h2>My Schedule</h2>
        <table>
                <tr>
                <td>Course ID</td>
                <td>Course Name</td>
            </tr>

            <?php
            echo "<tr>";
            echo "<td>" . $row['courseDept']. $row['courseNumber']. " - ". $row['courseSection']."</td>";
            echo "<td>" . $row['courseName']."</td>";
            echo "</tr>";               
            ?>
        </table>
    </div>
</div><!--content#home-->

2 个答案:

答案 0 :(得分:0)

我看到的一个主要问题是具有相同的“ID”并不符合标准。 将一个div从“content”更改为其他内容。

答案 1 :(得分:0)

如上所述,此示例在本地运行时有效。

在加载home.php文件后,父div保留id = first。你没有先附加任何css并在此过程中隐藏它吗?

我能够重现你正在解释的行为的唯一方法是从home.php div中删除class ='content',导致jquery选择器不能正确找到div。然后它用任何东西替换id ='first'div。

如果您将jquery选择器更改为:

$( “内容 ”)的负载(“ home.php”);

这会加载内容吗?我意识到这将创建一个嵌套的div与class ='content',这不是你想要的。只是想看看是否尝试让表格显示或不显示。

这有点棘手,因为你的例子似乎对我有用。您还可以提供其他详细信息吗? jQuery版本等?