我正在处理一个遗留Web应用程序的有趣问题,我不断收到以下错误:
Notice: Undefined offset:
0,1,2,3等等
我有一个jQuery tablesorter,它根据用户输入对数据进行排序。对于第2页上的结果,此错误仅发生 。
因此,如果我在第1页上更新结果,一切都很好,我没有得到上述偏移错误。但是,除了2以外的任何页面都会抛出偏移误差。
以下是生成错误的php代码:
if(count($_POST)>0) {
if ($_POST['action'] == "update"){
// find out how many records there are to update
$size = count($_POST['review_id']);
// start a loop in order to update each record
$i = 0;
while ($i < $size) {
// define each variable
$approved = $_POST['approved'][$i];
$banned = $_POST['banned'][$i];
$review_id = $_POST['review_id'][$i];
//var_dump($approved);
//var_dump($banned);
//var_dump($review_id);
if (isset($_POST['delete'][$i])){
$delete = 1;
} else {
$delete = 0;
}
$ approved,$ banned和$ review_id是导致错误的原因。当结果在页面上时,var_dump
似乎输出字符串。但是,在任何大于1的页面上,所有var_dump
输出分别为NULL NULL NULL。
我已经使用Firebug进行了检查,所有选择的表单都被恰当地命名为<select name="approved[4]" id="select2">
,即使是第2页<select name="approved[79]" id="select2">
非常感谢任何帮助。
编辑:如果我更改了传递到第一页的行数,则可以正常工作。我的意思是:如果我让PHP在第一页上显示50行而不是当前的25行,它会正确更新。因此,第1页上的任何数量的结果都会更新,任何结果都可能会转到第2页及以后 - 不要!。
答案 0 :(得分:1)
错误表示您在密钥上没有任何数据。
执行POST的var转储,看看是否有覆盖变量nam的地方。
请在页面更改后检查select语句是否被<form> </form>
括起来。您可以执行Web开发人员工具栏&gt;查看表单信息。