我遇到了一个问题。在我的index.php
中,我建立了与MySQL数据库的连接,并启动了一个包含$_SESSION['name']
和$_SESSION['password']
的会话。
我将页面content.php包含在带有PHP include()的DIV中。现在我想刷新内容而不重新加载页面,所以我通过Ajax通过jQuerys load()
再次加载content.php。 content.php现在显示大量错误,因为它无法连接到数据库并且没有会话信息。是否有可能让jQuery中的load()函数像PHP中的include()
一样工作?
我希望有人可以帮助我。
致以最诚挚的问候,
利玛
答案 0 :(得分:4)
使用session_start()和mysql连接创建包含初始化代码的文件。然后,将它包含在index.php和content.php中。使用 include_once 或 require_once 执行此操作,它将在两种情况下都有效(在首次加载时和在ajax加载时)。
<强>的init.php 强>
<?php
// Start or retrieve the session
session_start();
// Your connection to mysql
...
?>
<强>的index.php 强>
<?php
// Init actions
include_once "init.php";
// Your code
....
?>
<强> content.php 强>
<?php
// Init actions
include_once "init.php";
// Your code
....
?>
使用此代码,第一次包含content.php时,将忽略对init.php的调用(因为它已经包含在index.php中),并且当您从ajax调用content.php时,它将包含您的会话和数据库连接。
答案 1 :(得分:1)
让我猜一下。 index.php是保持mysql连接的权利吗?
如果是soo ..然后当你对content.php进行ajax调用时,它会在index.php中设置一个连接,因为它是一个新的请求,它将不会检索它。
您可以将mysql连接从index.php移动到content.php或者向ajax调用添加一个参数,然后检查content.php是否设置了该参数。如果它是一个新的连接。
答案 2 :(得分:0)
您是否在content.php文件中包含了所需的文件?除了调用session_start()
之外,您仍然需要在此文件中声明的所有数据库连接。