PHP/JS Ajax _POST数组不张贴
PHP/JS Ajax _POST Array not Posting
我的ajax代码有些奇怪。我很难缩小范围。
JavaScript://Discard Displaying Cards
$(".discard").click(function(){
var gameId = 20;
var cardArray = [];
$( ".card" ).each(function() {
var cardId = $(this).attr('id');
cardArray.push(cardId);
});
$.ajax({
type: 'POST',
url: './system/actions/discard.php',
data: "gameId=" + gameId + "&cardArray=" + cardArray,
success: function(data) {
console.log(cardArray);
console.log("Success.");
console.log(data);
}
});
});
javascript post到一个文件discard.php,其中给出了两个参数:gameId和cardArray。gameId现在是静态的,但cardArray是由每个"。元素加载到页面上。每个DOM id反映了我的数据库中的card_id。
discard.php
//Classes
include $_SERVER["DOCUMENT_ROOT"] . '/system/classes/cards.php';
header("Content-Type: text/html");
$gameId = empty($_GET['gameId']) ? '' : $_GET['gameId'];
$numbers = empty($_GET['cardArray']) ? '' : $_GET['cardArray'];
$regex = preg_replace('/[^,;a-zA-Z0-9_-]|[,;]$/s', '', $numbers);
$cardArray = explode(",", $regex);
foreach ($cardArray as $cardId) {
discardCards($cardId, $gameId);
};
discard.php应该从ajax请求中读取$_GET报头。但由于某种原因,它失败了。有趣的是,如果我用手动GET头直接调用页面,例如我浏览到:
domain.com/system/actions/discard.php ? gameId = 20, cardArray =("1"、"3")
或者
domain.com/system/actions/discard.php ? gameId = 20, cardArray = 1, 3
脚本工作正常!
我认为这可能是ajax发布的格式,因此是正则表达式,但是唉,它不起作用。因为我甚至不确定如何在它所调用的页面上显示或查看所请求的ajax数据URL,我发现它特别难以调试。
有什么建议吗?
您正在使用:
type: 'POST',
但是你收到的是$_GET
,把它改成$_POST
:
$gameId = empty($_POST['gameId']) ? '' : $_POST['gameId'];
$numbers = empty($_POST['cardArray']) ? '' : $_POST['cardArray'];
或者将AJAX函数更改为:
type: 'GET',
而且,data
应该是一个字符串。所以使用serialize()
:
$(form_id).serialize();
其中form_id
为形式
id
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- PHP/JS Ajax _POST数组不张贴
- 无法获取动态生成的文本框数组的张贴值
- 重新格式化php数组张贴从一个表单与ajax
- jQuery Post不张贴多维数组数据
- HTML张贴数组只张贴第一个值