Jquery .load()不读取php包含

时间:2013-02-13 18:38:21

标签: php jquery ajax

在我使用jquery.load()后,它没有读取index.php上的包含并使home.php不可读,继承我的示例代码。但是如果我在home.php上手动添加了sqlcon.php的内容就可以了,我该怎么办呢?

的index.php

require 'sqlcon.php';
include 'portal.php';

portal.php

<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/ajax.js" type="text/javascript"></script>
<div id="nav">
<ul>
<li><a href="modules/menu/home.php" class="nav">Home</a></li>
<li><a href="modules/menu/setup.php"  class="nav"> Setup</a></li>
</ul>
</div>
<div id="subnav"></div>

home.php

$result = mysql_query("SELECT announcement_date,announcement_title,announcement_text FROM sp_announcement") or die(mysql_error());  


    echo "<table id=\"newspaper-b\">";
    echo "<thead>";
    echo "<tr>";
    echo "<th scope=\"col\">Date</th>";
    echo "<th scope=\"col\">Title</th>";
    echo "<th scope=\"col\">Announcement</th>";
    echo "</tr>";
    echo "</thead>";

    while($row = mysql_fetch_array( $result )) {
            echo "<tr>";
            echo '<td>' . $row['announcement_date'] . '</td>';
            echo '<td>' . $row['announcement_title'] . '</td>';
            echo '<td>' . $row['announcement_text'] . '</td>';
            echo "</tr>"; 
    } 
    echo "</table>";
    echo "<br>";
    echo "<br>";

ajax.js

$(document).ready(function() {
$('a.nav').click(function() {
var url = $(this).attr('href');
$('#subnav').load(url);
return false;
});
});

2 个答案:

答案 0 :(得分:1)

可能是PHP脚本假设正在调用它的javascript文件的目录位置吗?在这种情况下,当您通过js加载时,您需要将包含的文件 relative 的路径写入当前工作目录。

要查找当前目录,请尝试将其一直放在php文件的顶部。 (在包括之前):

echo "Current Directory: " . getcwd();
exit;

答案 1 :(得分:1)

这里只是一个猜测,但顶部的文件链接可能没有得到解决。

你应该把它们写成

<script src="/js/jquery.js" type="text/javascript">

而不是

<script src="js/jquery.js" type="text/javascript">

如果你将包含的文件放在/ includes /文件夹或类似的东西中,那么逻辑作为include中的相对链接现在可能意味着不同的东西。