假設我正在寫一些論壇軟件。我們另外說那個論壇軟件有個人消息組件。我希望用戶能夠從列表中檢查幾條消息,然後單擊其他地方的刪除按鈕以刪除所有這些消息。在PHP中實現「批處理表」是否有一種常見的方法?
另一個類似的應用程序是GMail,或幾乎所有其他類型的網絡郵件應用程序。
是否有執行此操作的常見模式?我可以在每個表格行中粘貼一個數據庫行ID,但這看起來像是一個雜種。
假設我正在寫一些論壇軟件。我們另外說那個論壇軟件有個人消息組件。我希望用戶能夠從列表中檢查幾條消息,然後單擊其他地方的刪除按鈕以刪除所有這些消息。在PHP中實現「批處理表」是否有一種常見的方法?
另一個類似的應用程序是GMail,或幾乎所有其他類型的網絡郵件應用程序。
是否有執行此操作的常見模式?我可以在每個表格行中粘貼一個數據庫行ID,但這看起來像是一個雜種。
實際上,在每一行中粘貼數據庫友好標識符是是此問題的標準解決方案。在你的情況下,標識符將在複選框的value
屬性中。
擴展模式是讓每一個操作接受一個標識符列表而不是隻有一個(這樣你的所有操作都可以作爲批處理)。
acconplishing本的usuabl方法是讓瀏覽器發送的所有選定的ID與陣列..與此類似:
<input name="test[]" value="123" /> foo<br />
<input name="test[]" value="133" /> bar<br />
<input name="test[]" value="3" /> barfoo<br />
<input name="test[]" value="4" /> foobar<br />
<?php
if (!empty($_GET['test']) && is_array($_GET['test'])) {
foreach ($_GET['test'] as $k => $v) {
echo '<br />delete id' . (int) $v;
}
}
?>
請注意,我沒有運行此代碼。所以可能會有拼寫錯誤。 :D
+1 - 我沒有意識到這一點 - 我爲每一個定義了單獨的'name',並循環了'$ _POST'! – 2010-08-31 16:56:32
+1用於暗示如何推廣這一點。 – 2010-08-31 16:58:46