1 回答
TA贡献1799条经验 获得超8个赞
您需要做的是使用这些称为 XHR 或 XMLHttpRequest(Google it)的东西,从 JavaScript 到 php,这基本上有点像一个隐形浏览器,在幕后进入 php 页面并“加载”任何 php 页面返回,只有这一切都发生在 JavaScript 本身内,因此您可以读取这个来自 php 的“不可见页面”加载,并对其进行操作,而无需实际刷新页面。这个过程称为 AJAX(查找)
你可以做的是,当你设置这个“不可见页面”时,你还可以发送 php 页面可以读取的某些类型的信息,完成后,php 页面可以将某些内容回显给不可见页面,然后可以用 JavaScript 读取。您可以轻松地在 php 和 JavaScript 之间进行通信,方法是在 JavaScript 中发送某些值以及这个不可见的页面,然后等待 php 回显某些内容,然后使用 JavaScript 读取该值
那么我们实际上如何做到这一点呢?
首先在 JavaScript 方面,我们需要制作这个“不可见页面”,从技术上讲,它实际上不是一个页面,它只是执行与显示任何其他网页相同的正常操作,这在技术上称为“请求”,因为这就像向服务器询问一些数据,它基本上是“请求”它,然后当服务器回显某些数据时,这就是所谓的“响应”所请求的内容
因此,要在 JavaScript 中发出这个新请求,我们可以执行以下操作
var asking= new XMLHttpRequest ()
现在就好像创建了一个不可见页面,但尚未导航到任何内容,但我们现在必须隐喻地“输入 URL”到这个不可见页面(尚未实际“导航”到它)才能做到这一点
asking.open("GET", "pathToPHPpage.php?hi=there")
因此,第一部分称为“GET”,因为我们只想简单地获取响应,而不实际发送任何内容(如果我们发送文件,我们将使用“POST”,然后将文件日期放入下一步),然后我们输入您想要获取的 php 页面的 URL。如果它与 JavaScript 页面相同,只需放置 location.href 即可,但至少在 URL 末尾添加一些内容很重要,请注意“?hi=there”,您可以将其称为任何名称,但重要的是紧跟在 .php 页面后面的问号,然后是某个东西的名称(在本例中为“hi”),后面跟着它的值(在本例中为“there”),因为 php 页面能够读取该内容,并给出不同的值根据它所说的内容做出回应
好的,现在我们必须实际将该请求“发送”到服务器,这就像隐喻地“导航”到不可见页面上的 URL 一样
asking.send()
(如果你把“POST”放在前面,你可以在括号之间添加你想要发送的日期,通常是字符串的形式,但根据数据的不同它可能会有所不同,查找它以获取更多参考)
现在,在我们继续 JS 方面之前,让我们快速切换到 PHP(但不必按照这个顺序)来看看发生了什么。我们需要监听 php 页面上包含名称的任何“请求” “hi”(因为这是我们之前在 URL 末尾的内容),为了做到这一点,在 PHP 的顶部(技术上在 php 中的任何地方)我们做
$isHi = $_GET["hi"];
if(isset ($isHi)) {
//Do some php code
echo "hi back!".$isHi;
}
基本上,我们只是在发送到 PHP 的“GET”请求中查找“*hi”名称,我们检查它是否为“set”,即不为空,然后我们将一些消息回显给 JS,现在让我们监听该消息在 JavaScript 方面
回到 JS,在 .send 行之后(或之前),我们需要监听页面何时回显。
为此,我们检查它是否成功加载,因为有时可能会出现错误,所以让我们这样做
asking.onreadstatechange= function () {
if(asking.readyState == 4 && asking.status==200) {
alert(asking.responseText)
} else alert("ooh something happened")
}
现在我们可以访问 php 代码给我们的响应
您可以将其扩展到其他形式的沟通,如果您有任何疑问,请告诉我
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报