2011-01-09 143 views
0

我一直在研究PHP一段时间,现在和Ajax约一个月或两个月。我仍然无法弄清楚PHP如何将数据发送到Ajax以及Ajax如何检索数据。PHP如何将数据发送到Ajax?

任何人都可以发布一个例子或东西吗?

也许在提交一些文本之后..PHP将数据发送到数据库,但Ajax如何接收并将其发布到指定的字段而不刷新?

如果有帮助,我使用jQuery很多,所以如果你做一个Ajax请求PHP脚本我会使用它与阿贾克斯也

+1

HTTP是一个调用和响应协议。当客户端使用AJAX向服务器发送请求时,请使用PHP输出XML,JSON或HTML。 – webbiedave 2011-01-09 00:13:06

+0

当您使用Ajax调用PHP页面时,页面上的任何内容都将通过XMLHttpRequest.responseText传递回您的Javascript。阅读Ajax教程,它会向你解释一切。 – Jonah 2011-01-09 00:13:40

+0

我明白,我还是不明白。 – nowayyy 2011-01-09 00:17:27

回答

4

它实际上比你想像的要复杂得多。把AJAX想象成只是请求任何旧网页,诀窍就是它在幕后执行,“即时”,而不考虑浏览器的URL栏中的任何内容。

在这个意义上,你几乎问错了问题(几乎),因为它并不重要(在某种程度上)PHP如何服务的页面。 AJAX可以请求从PHP提供的任何页面。因此,举例来说,假设你有一个简单的PHP页面,看起来像这样:

<?php 
$content = '<div class="content">content</div>'; 
echo $content; 
?> 

而且你将文件保存为/content.html

从另一个页面,您可以动态加载的内容,使用AJAX,并作为jQuery是自己的喜好,可能是这样的:

$('#result').load('/content.html #content'); 

.load()是特定类型的AJAX功能(有多种,最基本的幸福。阿贾克斯()我相信)负载HTML内容直接进入给定页面。在这种情况下,上面发生的事情是,当你调用.load()函数时,它通过AJAX /content.html加载到内存中,查找名为#content的元素(这恰好是一个div),然后插入加载的#content元素放入#result元素中。

请注意,我之前说“几乎”和“某种”的原因在于,这取决于您在做什么,如何格式化您的PHP页面,这一点很重要。例如,请求使用AJAX格式的页面很常见,格式为XML,JSON或只是普通的旧HTML片段。当然,这是一个更密集的主题,但这里有几个示例教程:

http://www.xoops.org/modules/news/article.php?storyid=5103 http://www.factsandpeople。com/facts-mainmenu-5/26-html-and-javascript/89-jquery-ajax-json-and -php http://www.phpriot.com/articles/php-json-jquery-ajax-screencast

希望至少有所帮助。然而,网上有几千个教程,只需在Google上搜索应该会产生大量的结果。

1

  • 任何你echo在PHP中会出现在Ajax请求的响应主体中。正如@webbiedave所说,这可以是例如明文,XML或HTML或JSON编码数据。

  • 您在PHP脚本中输入的任何状态码(例如header("HTTP/1.1 404 Not Found"))都会反映在Ajax结果中。如果抛出一个不成功的HTTP状态代码(例如404500),则Ajax请求将失败,并且(如果您使用jQuery的Ajax)将调用error回调。

1

它只是在浏览器中发送请求到服务器,只在后台进行,不需要重新加载。收到的数据是页面的内容。如果您在浏览器中打开网址,您也会看到相同的结果。