未定义的偏移错误PHP

时间:2010-09-07 02:51:27

标签: php

我正在处理一个遗留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页及以后 - 不要!

1 个答案:

答案 0 :(得分:1)

错误表示您在密钥上没有任何数据。

  1. 执行POST的var转储,看看是否有覆盖变量nam的地方。

  2. 请在页面更改后检查select语句是否被<form> </form>括起来。您可以执行Web开发人员工具栏&gt;查看表单信息。