数据表为行请求了未知参数“1”
Datatable Requested unknown parameter '1' for row
我有以下数据表
<br><button id="addRow">Add New Row</button><br>
<table class="table table-striped table-bordered table-hover " id="example" cellSpacing=0 width="100%">
<thead>
<tr>
<th>Image</th>
<th>number</th>
<th>Creation_date</th>
<th>ei</th>
<th>name</th>
<th>profit</th>
</tr>
</thead>
<?php
foreach ( $data_req_table as $k => $v ) :
?>
<tr style="text-align: center;">
<td>
<img width="100px"
data-original="image.jpg"
src="image.jpg"
/>
</td>
<td><? echo $v['number']; ?></td>
<td><? echo $v['creationdate']; ?></td>
<td><? echo $v['ei']; ?></td>
<td><? echo $v['name']; ?></td>
<td><? echo $v['profit']; ?></td>
</tr>
<?php
endforeach;
?>
</table>
我通过 Jquery - Ajax 脚本在其中添加行。以下 :
<script type="text/javascript">
$(document).ready(function () {
debugger;
var t = $('#example').DataTable({
"searching": true,
//"paging": true,
"order": [[ 2, "desc" ]],
aLengthMenu: [
[25, 50, 100, 200, -1],
[25, 50, 100, 200, "All"]
], iDisplayLength: -1
});
var counter = 1;
$('#addRow').on('click', function ciicici() {
var now = new Date();
var now = now.toMysqlFormat();
var tii = new Date();
tii.setSeconds(tii.getSeconds() - 15);
var tii = tii.toMysqlFormat();
//alert(tii);
$.post( "sql.php", { timing: now,seconding: tii })//.done({});
.done(function( data ) {
var dataParts = data.split("##")
var lenghtylenght = dataParts.length;
for (i = 0; i <= lenghtylenght; i++) {
var dataPart = dataParts[i];
var splitData = dataPart.split("///");
t.row.add([
splitData[0],
splitData[1],
splitData[2],
splitData[3],
splitData[4],
splitData[5]
]).draw();
alert('done');
}
counter++;
});
//setTimeout(function(){ciicici();}, 15000);
});
$('#addRow').click();
});
</script>
并且 php 是
$ippi = 0;
foreach ( $data_rreq as $k => $v ) : //data_rreq is the pdo fetched array
$ippi++;
echo "<td><img width='100px' src='image.jpg' /></td>".'///';
echo '<td>'.$v['number'].'</td>'.'///';
echo '<td>'.$v['creationdate'].'</td>'.'///';
echo '<td>'.$v['ei'].'</td>'.'///';
echo '<td>'.$v['name'].'</td>'.'///';
echo '<td>'.$v['profit'].'</td>';
if($ippi < $len){
echo "##";
}
endforeach;
代码有效,但我有 2 个问题:
1) 数据表问题,每次自动添加一行时,都会出现错误:Requested unknown parameter '1' for row ...。看起来它循环了太多次,没有找到任何结果并且有错误。我的数据表参考如下:
<script src="http://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.0/js/jquery.dataTables.min.js"></script>
2) 然后我想问是否有一种方法可以避免使用 split 函数将 5 个不同的参数传递给请求,使用可能是某种 json 编码数组。
马克
我认为你的循环需要修补:
for (i = 0; i <= lenghtylenght; i++)
替换为:
for (i = 0; i < lenghtylenght; i++)
否则你会超出索引。
我有以下数据表
<br><button id="addRow">Add New Row</button><br>
<table class="table table-striped table-bordered table-hover " id="example" cellSpacing=0 width="100%">
<thead>
<tr>
<th>Image</th>
<th>number</th>
<th>Creation_date</th>
<th>ei</th>
<th>name</th>
<th>profit</th>
</tr>
</thead>
<?php
foreach ( $data_req_table as $k => $v ) :
?>
<tr style="text-align: center;">
<td>
<img width="100px"
data-original="image.jpg"
src="image.jpg"
/>
</td>
<td><? echo $v['number']; ?></td>
<td><? echo $v['creationdate']; ?></td>
<td><? echo $v['ei']; ?></td>
<td><? echo $v['name']; ?></td>
<td><? echo $v['profit']; ?></td>
</tr>
<?php
endforeach;
?>
</table>
我通过 Jquery - Ajax 脚本在其中添加行。以下 :
<script type="text/javascript">
$(document).ready(function () {
debugger;
var t = $('#example').DataTable({
"searching": true,
//"paging": true,
"order": [[ 2, "desc" ]],
aLengthMenu: [
[25, 50, 100, 200, -1],
[25, 50, 100, 200, "All"]
], iDisplayLength: -1
});
var counter = 1;
$('#addRow').on('click', function ciicici() {
var now = new Date();
var now = now.toMysqlFormat();
var tii = new Date();
tii.setSeconds(tii.getSeconds() - 15);
var tii = tii.toMysqlFormat();
//alert(tii);
$.post( "sql.php", { timing: now,seconding: tii })//.done({});
.done(function( data ) {
var dataParts = data.split("##")
var lenghtylenght = dataParts.length;
for (i = 0; i <= lenghtylenght; i++) {
var dataPart = dataParts[i];
var splitData = dataPart.split("///");
t.row.add([
splitData[0],
splitData[1],
splitData[2],
splitData[3],
splitData[4],
splitData[5]
]).draw();
alert('done');
}
counter++;
});
//setTimeout(function(){ciicici();}, 15000);
});
$('#addRow').click();
});
</script>
并且 php 是
$ippi = 0;
foreach ( $data_rreq as $k => $v ) : //data_rreq is the pdo fetched array
$ippi++;
echo "<td><img width='100px' src='image.jpg' /></td>".'///';
echo '<td>'.$v['number'].'</td>'.'///';
echo '<td>'.$v['creationdate'].'</td>'.'///';
echo '<td>'.$v['ei'].'</td>'.'///';
echo '<td>'.$v['name'].'</td>'.'///';
echo '<td>'.$v['profit'].'</td>';
if($ippi < $len){
echo "##";
}
endforeach;
代码有效,但我有 2 个问题:
1) 数据表问题,每次自动添加一行时,都会出现错误:Requested unknown parameter '1' for row ...。看起来它循环了太多次,没有找到任何结果并且有错误。我的数据表参考如下:
<script src="http://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.0/js/jquery.dataTables.min.js"></script>
2) 然后我想问是否有一种方法可以避免使用 split 函数将 5 个不同的参数传递给请求,使用可能是某种 json 编码数组。
马克
我认为你的循环需要修补:
for (i = 0; i <= lenghtylenght; i++)
替换为:
for (i = 0; i < lenghtylenght; i++)
否则你会超出索引。