2012-05-08 32 views
0

我可以成功地從數據庫中提取數據,但是現在使用複選框方法刪除特定行時遇到了問題。複選框刪除SQL行/刪除文件

我已經使用了許多不同的教程,包括以前的帖子,但它仍然不存在。

這裏是我的代碼:

<div id="content"> 

    <h1>Post Bulletin</h1> 

    <br /> 

    <form action="insert.php" method="post"> 
     <label for="title">Title</label> 
      <br /> 
     <input type="title" name="title" id="file" required="required" placeholder="Bulletin Title" /> 
     <br /> 
     <br /> 
     <label for="bulletin">Bulletin</label> 
      <br /> 
     <textarea id="bulletin" name="bulletin" id="bulletin" rows="10" cols="50" required="required" placeholder="Bulletin Message"></textarea> 
     <br /> 
     <input type="submit" /> 
    </form> 

    <br/ > 
    <br/ > 

    <h3>Current Bulletin Posts</h3> 

    <?php 

     require('connect.php'); 

     $data = mysql_query("SELECT * FROM bulletins ORDER BY Date_Entered DESC") 
      OR die("Can't access bulletins table. " . "<br />". mysql_error()); 

     while($info = mysql_fetch_array($data)) 
     {        
      Echo "<br />" . "Delete: " . "<input name='checkbox[]' type='checkbox' id='checkbox'/>" . "<br />" . "<br />"; 
      Echo $info['Title'] . "<br />" . "<br />"; 
      Echo $info['Bulletin'] . "<br />" . "<br />"; 
      Echo "Posted at " . $info['Date_Entered'] . "<br />" . "<br />"; 
      Echo "<hr>"; 
     } 
    ?> 

我已經創建的複選框,但我無法處理刪除。

我是否認爲'if isset'聲明就足夠了?我將如何分配一個ID到複選框的數組?

+0

哪裏是你的代碼提交表單?您的''標籤應位於複選框列表之後,以確保它們包含在內。 –

回答

1

使用行ID作爲複選框的value,這是什麼將被提交給PHP方面。

Echo "<br />" . "Delete: " . "<input name='delete[]' type='checkbox' value='" . $info['id'] . "' />" . "<br />" . "<br />"; 

現在,在PHP端,您將收到該記錄的ID刪除在$_POST['delete']數組。

此外,您的複選框必須包含在表單中才能提交。

+0

我需要一個刪除按鈕旁邊的一個簡單的isset循環的複選框就夠了嗎? – tagz2712

+0

您至少需要一個刪除/提交按鈕才能提交複選框。你不需要在循環中使用'isset()',因爲'$ _POST ['delete']'是一個簡單的記錄ID數組,用於刪除'Array(4,35,384,99)' - 每一個數字是要刪除的行ID。 – MrCode

0

首先,複選框應該在標籤中。

之後,您需要將value屬性設置爲複選框,該複選框將成爲該複選框的唯一鍵以及表格行的唯一鍵。

如果你使用php來刪除數據,那麼你只需要通過選中的複選框數組,併爲每個數組元素(除了表唯一鍵之外的任何東西)啓動刪除查詢。

0

您可以使用EXTJS來顯示從數據庫中提取的記錄,然後通過添加下面的代碼,您可以刪除所有選中的複選框行。

function delMethod(index) 
{ 
try{ 
    var rowstoDel=new Array(); 
    var count=0; 
    var recordsToDelete = new Array(); 
    for (var i=0; i <store2.getCount(); i++){ 
    var rec=store2.getAt(i); 
    if (rec.get("MappingGrid")==index){ 
    recordsToDelete[recordsToDelete.length] = rec; 
    rowstoDel[count]=i; 
    count++;  
    } 
    } 
for (var i=0; i <recordsToDelete.length; i++){ 
    store2.remove(recordsToDelete[i]); 
    } 
for (var j=rowstoDel.length-1;j>=0;j=j-1) 
{ 
myData2.splice(rowstoDel[j],1); 
} 
}catch(e){alert("unable to delete")} 
}