2012-03-09 29 views
0

我一直在学习Ajax,现在我想知道它是如何允许从Javascript传递给PHP的字符串。Ajax如何使Javascript字符串被传递到php

之前说过,将Javascript传递给PHP的问题在于PHP代码先运行,然后运行Javascript。所以当Javascript生成一个字符串时已经太晚了。

这是否意味着Ajax允许PHP代码在Javascript之后运行?

回答

0

坐在服务器上的php解释器基本上将任何php脚本解释为(通常)HTML页面。

这就是为什么你永远不能将JavaScript变量传递给PHP作为解释器,你的JavaScript只是另一个字符串,没有任何特殊的含义。您的JavaScript由您的浏览器运行,甚至不知道它是由PHP生成的。

我相信这就是“太迟”的意思。

0

您应该知道,JavaScript始终(除Node.js)客户端。 PHP是一种服务器端语言。

您无法将Javascript变量传递给PHP - 至少不会在Pageload中。

什么可以在页面被发送给PHP之后,它正在做一个AJAX请求。 通过该呼叫的响应,您可以替换当前请求的页面上的其他一些内容。

2

,我认为这是他们在说什么在:

阿贾克斯之前 - 具体而言,XMLHttpRequest来到之前一起 - 在一个网页中担任一个页面加载。如果它是一个包含Javascript的PHP生成的页面,浏览器将请求该页面,PHP将生成页面(包括Javascript代码,包括页面上的脚本片段等),并将页面发送到浏览器,浏览器会显示它。所以,PHP发生在前面。在下一页加载之前 - 当整个页面从头开始刷新时--PHP不再被涉及。

XMLHttpRequest来临,这有助于把“X”在“AJAX”后,因为它是回去以后,你有另一种选择。页面加载完成后,您的Javascript可以在页面的“幕后”发出请求,从服务器请求更多信息,而无需重新加载页面。实际上,加载的页面可能会导致更多的PHP在服务器上运行,并显示结果。

所以,如果你正在考虑从一个基于PHP的网站一个页面加载,这是(在某种程度上)是什么意思阿贾克斯;没有它,你会得到一个单独的PHP页面 - 构建,然后你的Javascript必须单独运行。使用Ajax,您可以向服务器发出进一步请求,并将结果输出到现有页面上,而无需整页加载。

0

这并不意味着“Ajax允许PHP代码在Javascript之后运行”。 AJAX是新请求到服务器,它允许您操作服务器的响应。您可以通过应对正在进行AJAX请求的url并将其粘贴到浏览器中来观察此情况。
所以基本上当你用浏览器打开一个网站时,你发送一个请求,任何AJAX调用也是一个请求,但是在后台完成,所以你不能直接看到它。您可以使用例如萤火虫或其他开发人员的工具来查看幕后发生的情况。它与脚本执行命令无关。

相关问题