Php 如何在不重新加载页面的情况下从数据库中获取数据?

Php 如何在不重新加载页面的情况下从数据库中获取数据?,php,javascript,sql,css,Php,Javascript,Sql,Css,我想做一个faq面板,当用户问任何问题时,它会显示在分区顶部,而无需重新加载页面,因为我想每隔几秒钟我就必须与数据库建立连接。现在的问题是,如何在不重新加载页面的情况下建立连接,以及如何显示新问题?我认为您需要的是AJAX。这是一种只需部分页面刷新即可与服务器联系的方式。当我使用asp.net时,我不知道它是如何与php一起工作的,但这里有一些可能会有所帮助。您必须研究推送/发布/订阅技术。我知道的很少,而且你有两个选择: ,它允许您使用JavaScript从服务器检索数据,然后可以使用Java

我想做一个faq面板,当用户问任何问题时,它会显示在分区顶部,而无需重新加载页面,因为我想每隔几秒钟我就必须与数据库建立连接。现在的问题是,如何在不重新加载页面的情况下建立连接,以及如何显示新问题?

我认为您需要的是AJAX。这是一种只需部分页面刷新即可与服务器联系的方式。当我使用asp.net时,我不知道它是如何与php一起工作的,但这里有一些可能会有所帮助。

您必须研究推送/发布/订阅技术。我知道的很少,而且你有两个选择:

  • ,它允许您使用JavaScript从服务器检索数据,然后可以使用JavaScript操作DOM。Ajax的基础是
    XMLHttpRequest
    对象,它允许您在JavaScript中完全在幕后检索数据。请注意,Ajax受到限制,但对于您所描述的,这很好-您将从同一来源加载数据

  • 框架(例如,
    iframe
    元素),您可以通过设置其
    src
    属性将内容加载到其中

  • 在这两者中,Ajax更加灵活

    参考/进一步阅读:


    旁注:虽然显然您可以直接使用
    XMLHttpRequest
    和DOM方法,但请注意,存在跨浏览器的差异(以及明显的bug),可以通过一个好的库(如、、或)来消除这些差异。它们还提供了许多有用的实用功能,使您能够专注于您试图解决的实际问题,而不是管道的细节

    例如,以下是如何使用jQuery向服务器发送Ajax请求,并使用服务器返回的HTML片段更新页面上的元素:

    $("#target").load("get_the_data.php", {article: x});
    
    也就是说:从
    get_the_data.php
    请求一个HTML片段,并将参数
    article
    x
    变量中的值一起发送给它,然后将该HTML片段放在具有HTML
    id
    目标的元素中。如果您不使用库,那么这将是一个很好的10行代码。现在,这并不多,但要反复重复一遍(在这个过程中,处理一个IE bug,它通过元素的
    id
    查找元素),然后你就会看到它是如何加起来的


    我建议您阅读上面的参考资料,以便了解库是如何做的(这不是魔术),但没有理由不利用人们所做的艰苦工作来简化这些工作。

    现在轮到Ajax了。您需要的是一种称为AJAX的技术。您可以在jQuery库中找到一些有用的东西,它提供了不同的方法来更轻松地使用Ajax

    您将通过客户端脚本语言(本例中为Javascript)创建与服务器端编程语言和数据库的关系。 这是这些实现的一个示例: