为什么我的 ajax post 函数无法使用按钮单击?
Why is my ajax post function not working with button click?
我试图在使用 AJAX 单击按钮时将 post 变量添加到我的 PHP
文件,但是当我检查我的 PHP
页面加载时,我是没有收到变量。
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var qry = query();
$.ajax({
type: "POST",
url: "favourites.php",
data: {
qry: qry
},
success: function (html) {
console.log (qry);
}
});
});
});
其中 query()
只是一个创建数组的函数。
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );
$query = "";
$key = "";
function getQueries() {
if (isset ( $_POST ['qry'] )) {
$query = $_POST ['qry'];
echo $query;
} else {
echo "Query Missing";
}
}
getQueries ();
function saveQueries() {
if (isset ( $_POST ['keyValue'] )) {
$key = $_POST ['keyValue'];
$arr = array_combine ( $key, $query );
} else {
echo "Key Missing";
}
}
saveQueries ();
输出:
Query MissingKey Missing
我使用了与 post 数据类似的程序到 PHP 页,但没有使用按钮点击,我是否遗漏了什么?
可能是因为您没有声明内容类型。
按如下方式更改您的脚本。
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var qry = query();
$.ajax({
type: "POST",
url: "favourites.php",
data: {
qry: qry
},
contentType: 'application/json',
success: function (html) {
console.log (qry);
}
});
});
});
默认 jquery ajax 内容类型是 application/x-www-form-urlencoded; charset=UTF-8
当您以 json
格式发布数据时,您必须明确告诉 ajax您通过将内容类型声明为 application/json
来发送 json
内容
EDIT
然后将数据作为字符串内容发送。尝试以下脚本。 (请注意我已经删除了 contentType
选项。
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var _data= JSON.stringify({qry:query()});
$.ajax({
type: "POST",
url: "favourites.php",
data: _data,
success: function (html) {
console.log (qry);
}
});
});
});
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var qry = query();
qry = JSON.stringify(qry); // added this line
$.ajax({
type: "POST",
url: "favourites.php",
data: {
qry: qry
},
success: function (html) {
console.log (qry);
}
});
});
});
我试图在使用 AJAX 单击按钮时将 post 变量添加到我的 PHP
文件,但是当我检查我的 PHP
页面加载时,我是没有收到变量。
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var qry = query();
$.ajax({
type: "POST",
url: "favourites.php",
data: {
qry: qry
},
success: function (html) {
console.log (qry);
}
});
});
});
其中 query()
只是一个创建数组的函数。
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );
$query = "";
$key = "";
function getQueries() {
if (isset ( $_POST ['qry'] )) {
$query = $_POST ['qry'];
echo $query;
} else {
echo "Query Missing";
}
}
getQueries ();
function saveQueries() {
if (isset ( $_POST ['keyValue'] )) {
$key = $_POST ['keyValue'];
$arr = array_combine ( $key, $query );
} else {
echo "Key Missing";
}
}
saveQueries ();
输出:
Query MissingKey Missing
我使用了与 post 数据类似的程序到 PHP 页,但没有使用按钮点击,我是否遗漏了什么?
可能是因为您没有声明内容类型。
按如下方式更改您的脚本。
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var qry = query();
$.ajax({
type: "POST",
url: "favourites.php",
data: {
qry: qry
},
contentType: 'application/json',
success: function (html) {
console.log (qry);
}
});
});
});
默认 jquery ajax 内容类型是 application/x-www-form-urlencoded; charset=UTF-8
当您以 json
格式发布数据时,您必须明确告诉 ajax您通过将内容类型声明为 application/json
json
内容
EDIT
然后将数据作为字符串内容发送。尝试以下脚本。 (请注意我已经删除了 contentType
选项。
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var _data= JSON.stringify({qry:query()});
$.ajax({
type: "POST",
url: "favourites.php",
data: _data,
success: function (html) {
console.log (qry);
}
});
});
});
$(document).ready(function(){
$("#qryBtn").click(function(){
// post qry //
var qry = query();
qry = JSON.stringify(qry); // added this line
$.ajax({
type: "POST",
url: "favourites.php",
data: {
qry: qry
},
success: function (html) {
console.log (qry);
}
});
});
});