删除多行函数中的未定义变量和索引

时间:2011-10-20 19:52:32

标签: php

编辑:我添加了这个

if(isset($ _ POST ['delete'])&& isset($ _ POST ['checkbox'])) (从下面的答案得到,但似乎asnwer已经消失)

现在未定义的varialbe和索引错误消失了...但现在的问题是当我尝试删除时,它需要检查并单击两次删除按钮以删除所选行......

  <form name="frmSearch" method="post" action="insert-add.php">

<table width="600" border="1">
  <tr>
    <th width="50"> <div align="center">#</div></th>
    <th width="91"> <div align="center">ID </div></th>
    <th width="198"> <div align="center">First Name </div></th>
    <th width="198"> <div align="center">Last Name </div></th>
    <th width="250"> <div align="center">Mobile Company </div></th>
    <th width="100"> <div align="center">Cell </div></th>
    <th width="100"> <div align="center">Workphone </div></th>
    <th width="100"> <div align="center">Group </div></th>
  </tr>
    </form>
<?

    echo "<form name='form1' method='post' action=''>";

while($objResult = mysql_fetch_array($objQuery))
{


    echo "<tr>";
    echo "<td align='center'><input name=\"checkbox[]\" type=\"checkbox\" id=\"checkbox[]\" value=\"$objResult[addedrec_ID]\"></td>";
    echo "<td>$objResult[addedrec_ID] </td>";
    echo "<td>$objResult[FirstName]</td>";
    echo "<td>$objResult[LastName] </td>";
    echo "<td>$objResult[MobileCompany] </td>";
    echo "<td>$objResult[Cell] </td>";
    echo "<td>$objResult[WorkPhone] </td>";
    echo "<td>$objResult[Custgroup] </td>";

   echo "</tr>";

}


 echo "<td colspan='7' align='center'><input name=\"delete\" type=\"submit\" id=\"delete\" value=\"Delete\">";

 if (isset($_POST['delete']) && isset($_POST['checkbox'])) // from button name="delete"
 {
 $checkbox = ($_POST['checkbox']); //from name="checkbox[]"
     $countCheck = count($_POST['checkbox']);

 for($d=0;$d<$countCheck;$d++)
     {
         $del_id  = $checkbox[$d];

 $sql = "DELETE from UserAddedRecord where addedrec_ID = $del_id";

 $result2=mysql_query($sql)  or trigger_error(mysql_error());;;

     }
         if($result2)
     {  
          $fgmembersite->GetSelfScript();
         }
         else
         {
 echo "Error: ".mysql_error();
         }
 }
  echo "</form>";

感谢您的回复。

2 个答案:

答案 0 :(得分:0)

第一个通知是由于没有$ _POST [“checkbox”]变量。如果您正在使用AJAX,请使用firebug检查您的查询以检查您是否正在发送复选框变量。

第二个未定义来自你的嵌套。请参阅下面的示例:

$foo = 0
if($foo ==1){
    $bar = 5;
}
if($bar == 2){
    //Blah
}

如果你要运行那么$ bar将永远不会被设置,因此通知。由于$ countPck设置为0,因为$ _POST [“checkbox”]未设置,因此for循环永远不会运行,因此$ result2永远不会设置。

答案 1 :(得分:0)

您的问题是,您有一个嵌套在另一个表单中的表单。

  <form name="frmSearch" method="post" action="insert-add.php">

并且在中间你有

    echo "<form name='form1' method='post' action=''>";

删除第二个,“echo”'ed是一个......

除非你关闭第一张表格,否则你不能在其中发出另一张表格......