我有这个剧本:
<script>
var request;
$("#foo").click(function(event){
request = $.ajax({
url: "/votesHandler.php",
type: "post",
data: "true"
});
request.done(function (response, textStatus, jqXHR){
alert("Voted!");
});
request.fail(function (jqXHR, textStatus, errorThrown){
alert(
"Oops, something went wrong"
);
});
request.always(function () {
alert("Done.");
});
</script>
我正在尝试做的是在单击#foo元素时向服务器发送“true”。我以前只使用过AJAX几次,每次都使用表单。问题是我需要在PHP中接收此POST请求(带$_POST['foo']
),但这次输入不是文本输入的名称。如何在没有表单的情况下将data
发送到$_POST
?
答案 0 :(得分:2)
您可以在发送到网址时指定数据密钥。
$.ajax({
data: {foo: 'true'}
});
要检索它,请使用
$_POST['foo']
答案 1 :(得分:1)
发送时间:
data: 'foo_clicked=1',
或
data: 'foo_clicked=' + somevarname,
在PHP方面:
$recd = $_POST['foo_clicked'];
if ($recd == 1) {
//do what you need to do
}
答案 2 :(得分:0)
试试这个:
$("#form").submit(function (e) {
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
console.log(formURL); //your form action
$.ajax({
url: formURL,
type: "POST",
data: postData,
beforeSend: function () {
//do
},
success: function (data, textStatus, jqXHR) {
console.log('success data');
//whatever
},
error: function (jqXHR, textStatus, errorThrown) {
//if fails
console.log('fail');
}
});
e.preventDefault(); //STOP default action
});