在使用Ajax时,如何将变量从JavaScript传递到PHP?
首先,我知道以前有人问过这个问题。然而,在前面的所有示例中,提问者一直在使用Ajax,看起来像这样:在使用Ajax时,如何将变量从JavaScript传递到PHP?,javascript,php,ajax,Javascript,Php,Ajax,首先,我知道以前有人问过这个问题。然而,在前面的所有示例中,提问者一直在使用Ajax,看起来像这样: $.ajax({ type: "POST", url: 'logtime.php', data: "userID=" + userID; }); 但是我不熟悉这种风格。我被教导发出Ajax请求的方式是使用以下形式的代码: var xhr = new XMLHttpRequest(); xhr.open("GET", "data.php"); xhr.send(); x
$.ajax({
type: "POST",
url: 'logtime.php',
data: "userID=" + userID;
});
但是我不熟悉这种风格。我被教导发出Ajax请求的方式是使用以下形式的代码:
var xhr = new XMLHttpRequest();
xhr.open("GET", "data.php");
xhr.send();
xhr.onreadystatechange = function() {
if(xhr.readyState === 4) {
//DEFINE CALLBACK FUNCTION
}
}
那么,使用我熟悉的上述Ajax风格,应该如何将数据发送到服务器,由我的php文件data.php处理?我知道这与将其包含在xhr.send()
括号中有关,但我不确定具体是如何做到的
另外,如果我们希望从数据库中检索数据,但必须向php提供一个变量,以便它从数据库中选择正确的数据,那么是否可以使用GET
方法
最后,我所学到的Ajax方法与我提到的其他方法有什么不同,我经常看到这样的方法被提及
谢谢。请尝试:
`xhr.send('you_user=user&your_password=password');`
。。。或者可以使用更优雅的:
var d = new FormData();
d.append('you_user', 'user');
d.append('your_passowrd', 'password');
// ...
xhr.send(d);
请尝试:
`xhr.send('you_user=user&your_password=password');`
。。。或者可以使用更优雅的:
var d = new FormData();
d.append('you_user', 'user');
d.append('your_passowrd', 'password');
// ...
xhr.send(d);
这有很多层次 HTTP支持许多具有不同用途的协议 简单地说,主要是GET和POST。GET用于请求数据,POST用于向服务器发送数据以进行更改 在GET请求中,要发送到服务器的任何数据通常使用查询字符串(使用编码)在URL中进行编码 在POST请求中,数据通常放在请求正文中,并且通常也会使用application/x-www-form-urlencoded。如果您想上载文件,则可以使用多部分/表单数据 使用此算法编码数据可能最简单: (这不是最有效的方法,但它清楚地显示了步骤) 最后,我所学到的Ajax方法与我提到的其他方法有什么不同,我经常看到这样的方法被提及 它使用jQuery库(但不是一个很好的示例)。您可以看到它在何处手动构造查询字符串(
“userID=“+userID
),但它无法使用编码例程。使用jQuery时的安全方法是将对象传递给数据:
$.ajax({
type: "POST",
url: 'logtime.php',
data: { userID: userID }
});
这有很多层次 HTTP支持许多具有不同用途的协议 简单地说,主要是GET和POST。GET用于请求数据,POST用于向服务器发送数据以更改某些内容 在GET请求中,要发送到服务器的任何数据通常使用查询字符串(使用编码)在URL中进行编码 在POST请求中,数据通常放在请求正文中,并且通常也会使用application/x-www-form-urlencoded。如果您想上载文件,则可以使用多部分/表单数据 使用此算法编码数据可能最简单: (这不是最有效的方法,但它清楚地显示了步骤) 最后,我所学到的Ajax方法与我提到的其他方法有什么不同,我经常看到这样的方法被提及 它使用jQuery库(但不是一个很好的示例)。您可以看到它在何处手动构造查询字符串(
“userID=“+userID
),但它无法使用编码例程。使用jQuery时的安全方法是将对象传递给数据:
$.ajax({
type: "POST",
url: 'logtime.php',
data: { userID: userID }
});
您拥有的是“原始”ajax。完美的功能性代码,但将所有浏览器差异、向后兼容性等留给您来处理。大多数人只使用jquery库,它将您拥有的所有内容封装到单个
$。get(…)
call。在幕后,一切都是一样的——一个普通的HTTP请求/响应周期。HTTP中没有变量。只需查询字符串和消息体。可能与您拥有的内容重复的是“原始”ajax。完美的功能代码,但让您来处理所有浏览器差异、向后兼容性等。大多数人只使用jquery库,它将所有内容封装到一个$中。get(…)
call。在后台,一切都是一样的——一个普通的HTTP请求/响应周期。HTTP中没有变量。只需查询字符串和消息体。OK可能重复,但在php代码中如何检索该数据?我会使用$\u GET['you\u user']?是的!为了确保并检查请求,请在您的logtime.php中添加:var_dump($_request);很好,这回答了我的问题。谢谢。不客气!请选择已接受的答案;)对不起,什么是logtime.php文件?好的,但是在php代码中如何检索该数据?我会使用$_GET['you_user']?是的!为了确保并检查请求,请在您的logtime.php中添加:var_dump($_request);很好,这回答了我的问题。谢谢。不客气!请选择已接受的答案;)对不起,什么是logtime.php文件?