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

时间:2012-01-08 11:35:15

标签: php javascript sql css

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

4 个答案:

答案 0 :(得分:2)

您有两种选择:

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

  2. 框架(例如,iframe元素),您可以通过设置其src属性来加载内容。

  3. 在这两者中,Ajax更加灵活。

    参考/进一步阅读:


    旁注:虽然显然你可以直接使用XMLHttpRequest和DOM方法,但请注意,存在跨浏览器差异(以及彻头彻尾的错误),可以通过像{{{}这样的好库来为您平滑。 3}},jQueryPrototypeYUIClosure。它们还提供了许多有用的实用功能,使您可以专注于您尝试解决的实际问题,而不是管道的细节。

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

    $("#target").load("get_the_data.php", {article: x});
    

    这就是说:从get_the_data.php请求一个HTML片段,向其发送带有article变量值的参数x,并将该HTML片段放在包含HTML的元素中{ {1}}“目标”。如果您不使用库,这将是一个很好的10行代码。现在,这不是很多,而是一遍又一遍地重复(并在此过程中处理围绕按id查找元素的IE错误),并且您会看到它如何加起来。

    我建议你阅读上面的参考文献,这样你就知道图书馆正在做他们正在做的事情(这不是魔术),但是没有理由不利用人们为使这些事情变得更容易所做的努力。< / p>

答案 1 :(得分:1)

我认为你需要的是AJAX。这是一种只与部分页面刷新联系服务器的方法。我不知道如何使用php,因为我使用asp.net,但这里a link可能会有所帮助。

答案 2 :(得分:1)

这是Ajax转向。您需要的是一种名为AJAX的技术。您可以在jQuery库中找到可用的东西,它们提供了更容易使用Ajax的不同方法。

http://api.jquery.com/jQuery.ajax/

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

http://jqueryui.com/demos/autocomplete/

答案 3 :(得分:0)

您必须研究推送/发布/订阅技术。我知道的很少是pubnumcommet