我想要做的是从表中获取所有数据,并使用post方法将其作为带有ajax的自动增量多维数组发送。当它到达服务器时应该是:
$_POST -|-- ['Key1'] = 'value1' <---This is from an HTML input
|-- ['Key2'] = 'value2' <---This is from an HTML input
|-- ['tabledata']--| -- [0]-| -- ['column1'] = 'value from cell'
| | -- ['column2'] = 'value from cell'
| -- [1]-| -- ['column1'] = 'value from cell'
| -- ['column2'] = 'value from cell'
[0]和[1]只是在创建表示第一行和第二行的新数组对象时生成的自动增量数字。 这是一个js小提琴我到目前为止(它返回数组但不是我需要的方式)https://jsfiddle.net/v2quhwb8/2/与JS:
$(document).ready(function() {
var myTable = $('#example').DataTable({
responsive: true
});
var testData = myTable.data().toArray();
$('#myButton').on('click', function() {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'page/postTest.php',
data: testData,
success: function(response) {
// console.log('Server response', response);
}
});
});
});
答案 0 :(得分:1)
找到我自己的答案:
data: testData
中的 $.ajax({...
更改为data: {data: testData}
,它返回PHP $_POST
中需要的多维数组。我之前问过的是像后端白痴这样的关联数组,因为很明显,它们不存在于javascript中,我的坏人。
你将在PHP中获得的内容类似于$_POST['data'][0][0]['cell value']
,第一个零是从头到尾的行,第二个零代表从左到右的单元格。我想我不得不以某种方式解决这个问题。我更新了https://jsfiddle.net/v2quhwb8/4/