[英]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.