簡體   English   中英

獲取n行的復選框值

[英]Obtaining checkbox values for n number of rows

我正在嘗試為網頁上的sql數據庫顯示的數據實現批量操作功能。 我已經將數據回顯成html格式,我正在嘗試添加一個復選框功能,用戶可以選擇任意數量的行,然后通過從下拉列表中選擇一個值來執行批量操作,例如delete-和所有選定的值都將從數據庫中刪除。 雖然在提交執行操作按鈕后獲得所選復選框值,但我有點磕磕絆絆。 我把我的嘗試放在下面的代碼中 - 我得到了無效的foreach參數提供了錯誤消息。 我很確定它與我的輸入循環有關。

任何幫助將不勝感激!

//establish connection to database:
        require 'DB.php';

        $query = mysql_query("SELECT * FROM names", $conn);
        echo "<tr>";

        //echo results while rows of data remain... 
        while ($row = mysql_fetch_array($query)) {
            echo '<tr><td>' . $row['NAME'] . '</td>';
            echo '<td><input type="checkbox" name="checked[' . $row['NAME'] . ']" value="' . $row['NAME'] .'"></td>';
        }

        ?>
        </tr>
    </table>
</div>
</body>
</html>
<?

if (isset($_POST['perform_action'])) {

    //check checkbox values
    foreach ($_POST['checked'] as $check) {
        echo $check;
    }

    //do something with the values
    if ($_POST['bulk_action'] == 'delete') {
        echo "you chose to delete";
    }
if (isset($_POST['perform_action'])) {
 $query = mysql_query("SELECT * FROM names", $conn);
   while ($row = mysql_fetch_array($query)) {
       if (isset($_POST["checked".$row['NAME']])){
           //hear you can do anything to your checked checkbox

          }

    }
  }

在處理發布的數據之前,您需要確保它存在。

在您的代碼中,如果您在沒有選中任何復選框的情況下提交表單,您將面對無效的foreach參數提供消息,因此您需要檢查字段$_POST['checked']是否存在然后運行循環。

所以改變了

foreach ($_POST['checked'] as $check) {
    echo $check;
}

    //check checkbox values
  if(isset($_POST['checked'])){
    foreach ($_POST['checked'] as $check) {
        echo $check;
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM