在我们开始之前,我已经充分意识到了这方面的其他十亿篇文章,但是由于某些原因(我的代码可能不好),答案并不适用。
这是我的jquery的目标html:
<!-- data epids array -->
<form method="post" id="id-form" class="hidden">
<input type="hidden" id="ids" value="" />
</form>
实际上,id是在页面加载时通过jquery添加的。我已经用
console.log($('#ids').val())
并按预期返回数据。
然后在jquery中执行此操作:
//export to csv
$('#to-csv').on('click', function(e)
{
//stop default action
e.preventDefault();
//set form
var form = $('#ids-form'),
ids = $('#ids').val(),
data = [];
var splitIds = ids.split(', ');
for (var i = 0; i < splitIds.length; i++)
{
data.push({'id': splitIds[i]})
}
console.log(data); //this returns an object of correct data
//set form url, data + submit
form.attr('action', parts_url+ 'output-csv.php');
//I didn't think this was necessary, with or without, $_POST is still null
form.append(data);
form.submit()
});
对我来说这是可行的,但是当我尝试使用$post时它是空的。我试着这样查看数组中的数据:
var_dump(file_get_contents('php://input'));
var_dump($_POST);
第一个返回空字符串,第二个返回空数组。
我不知道为什么它是空的。可能是我对一个数组使用了一个输入,并且输入的字符长度有一个未说明的限制?
如何进行调试?
(P.S发布我的.ini文件有帮助吗?)
谢谢。
更新
所以我试着说出最后一句话:
将HTML更改为:
<form method="post" id="ids-form" class="hidden">
<!--<input type="hidden" id="ids" value="" />-->
</form>
我的jquery到:
//export to csv
$('#to-csv').on('click', function(e)
{
//stop default action
e.preventDefault();
//set form
var form = $('#ids-form');
//set form url, data + submit
form.attr('action', parts_url+ 'output-csv.php');
form.submit()
});
$('.rm-row').each(function()
{
var id = $(this).data('id');
$('#ids-form').append('<input type="hidden" class="id" value="'+ id +'" id="'+ id +'" />')
});
邮局还是空的