0

テーブルの複数の行を削除する次の 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'; ?>
4

2 に答える 2

1

explodeID文字列をに変換するにはを使用する必要があります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);
       }
   }
}
于 2012-12-31T10:49:31.483 に答える
1

まず、セッション quiz_id が存在するかどうかを確認する必要があります。存在する場合は、このセッションに値が割り当てられていることを確認する必要があります。

于 2012-12-31T11:04:28.667 に答える