【问题标题】:delete multiple rows with checkbox用复选框删除多行
【发布时间】:2012-12-31 10:42:10
【问题描述】:

我有以下 jquery 代码来删除表的多行:

$(function(){
    $("a.delete").click(function(){
        page=$(this).attr("href");
        ids=new Array()
        a=0;
        $("input.chk:checked").each(function(){
            ids[a]=$(this).val();
            a++;
        })

        if(confirm("Are you sure want to delete?")){

                el=$(this)
                $.ajax({
                    url:page,
                    data:"id="+ids,
                    type:"GET",
                    success:function(res)
                    {
                        if(res==1)
                        {
                            $("input.chk:checked").each(function(){
                                $(this).parent().parent().remove();
                            })
                        }
                    }
                })
        }
        return false;
    })
})

复选框(名称为 question_id 的值没问题,复选框在 while 循环内):

<input name="chk[]" class="chk" type="checkbox" value="'<?php echo $row1['question_id'];?>'" />

删除链接(循环外):

<a href="delete_quiz_questions.php" class="delete">delete</a>

以及删除记录的php页面:

<?php
   session_start();
   include('connect_db.php');

   $delete_id = $_GET['id'];

   $id = count($delete_id);

   if (count($id) > 0){
       foreach ($delete_id as $id_d){
           $sql = "DELETE FROM quiz_questions WHERE id_questions ='$id_d' AND id_quiz ='".$_SESSION['quiz_id']."'";
           $delete = mysql_query($sql);
       }
   }


?>

当我单击 href 按钮删除记录时,显示此消息

Notice: Undefined index: id in C:\wamp\www\diplomatiki\delete_quiz_questions.php on line 5

Warning: Invalid argument supplied for foreach() in C:\wamp\www\diplomatiki\delete_quiz_questions.php on line 11

Notice: Undefined variable: delete in C:\wamp\www\diplomatiki\delete_quiz_questions.php on line 18

你能帮帮我吗??

发送数据的php页面

$result=mysql_query("SELECT * FROM quiz_questions WHERE id_quiz='".$quiz_id."' ");

    if(mysql_num_rows($result)>0){
    $index = 1;

    while($row=mysql_fetch_array($result))
    {

    $result1=mysql_query("SELECT * FROM questions WHERE question_id ='".$row['id_questions']."'");

    if(mysql_num_rows($result1)>0){

    while($row1=mysql_fetch_array($result1))
    {

   $result2=mysql_query("SELECT * FROM question_".$row1['type']." WHERE id_question='".$row1['question_id']."' LIMIT 1");
   if(mysql_num_rows($result2)>0){
   $row2=mysql_fetch_array($result2);
    ?>
    <tr>
      <td><?php echo $index++; ?> </td>
      <td><input name="chk[]" class="chk" type="checkbox" value="'<?php echo $row1['question_id'];?>'" /></td>
      <td><?php echo $row1['type']; ?></td>
      <td><?php echo $row2['question']; ?></td>

    </tr>
    <?php  }}

    }


}
echo '<input type="hidden" name="quiz_id" id="quiz_id" style="text-align: center" value="' . $quiz_id . '" size=5/>';

?>

  </tbody>
</table>
<caption><a href="delete_quiz_questions.php" class="delete">delete</a></caption>

<?php } else echo 'sorry'; ?>

【问题讨论】:

标签: php jquery mysql


【解决方案1】:

您必须使用explode 将ID 字符串转换为Array

$delete_id = explode(",", $_GET['id'])
$id = count($delete_id);
if (count($id) > 0)

一开始你必须这样做。

if (isset($_GET['id'])) {

所以你不会得到任何NoticeWarning

session_start();
include('connect_db.php');

if (isset($_GET['id'])) {
   $delete_id = explode(",", $_GET['id'])

   $id = count($delete_id);

   if (count($id) > 0)
   {
       foreach ($delete_id as $id_d)
       {
                $sql = "DELETE FROM quiz_questions WHERE id_questions ='$id_d' AND id_quiz ='".$_SESSION['quiz_id']."'";
                $delete = mysql_query($sql);
       }
   }
}

【讨论】:

  • sahal 现在我有两条消息:注意:未定义索引:第 21 行 C:\wamp\www\diplomatiki\delete_quiz_questions.php 中的 id 和注意:未定义索引:C:\wamp\ 中的 quiz_id www\diplomatiki\delete_quiz_questions.php 第 27 行
  • $_SESSION['quiz_id']我不知道它是怎么来的
  • 如果我这样发送 quiz_id? echo '';你能把 jquery 的代码改成用 get 发送和 quiz_id 吗?
  • data:"id="+ids, 中这样做你可以修改为data:"id="+ids+"&amp;quiz_id="+$('#quiz_id').val(), 而不是$_SESSION 使用$_GET 作为quiz_id
  • 未定义索引:第 4 行 C:\wamp\www\diplomatiki\delete_quiz_questions.php 中的 quiz_id 且 get[id] 未通过!!
【解决方案2】:

首先,您必须检查会话 quiz_id 是否存在。如果存在,您应该检查此会话是否分配了任何值。

【讨论】:

  • 注意:未定义索引:第 4 行 C:\wamp\www\diplomatiki\delete_quiz_questions.php 中的 quiz_id .. 我对此有疑问.. 单击删除并发送给我时我的页面刷新到 delete_quiz_questions 页面
  • 你刚刚成功放了一个警告框:function(res)
  • 问题很大..没有发送..id或quiz_id和页面刷新
  • 问题是你的 ajax 不工作,可能是因为 jquery 冲突
  • Ajax 工作正常。不要盲目地给出答案。先搞清楚问题
猜你喜欢
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多