Я создал веб-сайт с большим количеством списков/таблиц (на основе php). Я пытаюсь создать систему для списков Change All
и Delete All
. Я уже добавил checkbox
ко всем отдельным элементам списка. У меня также есть один флажок, чтобы выбрать все эти элементы одним щелчком мыши. Теперь я застрял в том, как выполнить параметр изменения и удаления. Прошло 3 дня ...изменить и удалить выбранные элементы из списка - PHP
- Я сделал
Change All
код справа. Но я не могу найти частьDelete All
. - Я не знаю, чтобы передать переменную $ targetpage, чтобы перенаправить ее после этого.
Вот код:
<!DOCTYPE html>
<html>
<title>List 1</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
<link rel="stylesheet" href="http://www.w3schools.com/lib/w3-theme-purple.css">
<?php include('dbcon.php');?>
<style>a {text-decoration: none;}</style>
<!--Select All-->
<script>
function checkAll(ele) {
var checkboxes = document.getElementsByTagName('input');
if (ele.checked) {
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = true;
}
}
} else {
for (var i = 0; i < checkboxes.length; i++) {
console.log(i)
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = false;
}
}
}
}
</script>
<body>
<!--?php include ('header.php');?-->
<form name="form1" enctype="multipart/form-data" action="ajaxAction.php" method="post">
<div class="w3-container">
<div class="w3-padding-32 w3-center">
<input class="w3-btn w3-green" type="submit" name="chkbox" value="Change All" />
<input class="w3-btn w3-red" type="submit" value="Delete All">
</div>
<center>
<table class="w3-table-all" style="width: auto;">
<tr class="w3-theme">
<th><input class="w3-check" type="checkbox" onchange="checkAll(this)" name="chk[]" /></th>
<th>Data</th>
</tr>
<tr>
<td>
<input class="w3-check" type="checkbox" name="chkbox[]" />
</td>
<td class="w3-small" >
The data is displayed here.
</td>
</tr>
</table>
</center>
</div>
</form>
<br>
<!--?php include ('footer.php');?-->
</body>
</html>
Вот код ajaxAction.php:
<!--Change-->
<?php
if ($_REQUEST['chkbox']) {
$targetpage = $_REQUEST['targetpage'];
$change = array();
$change = $_REQUEST['chkbox'];
for($c=0;$c<count($change); $c++){
$sql_all = "update `table` set `value`='123' WHERE `id` = '$change[$c]'";
mysql_query($sql_all) or die(mysql_error());
}
?>
<script>
var targetpage = "<?php echo $targetpage ?>";
location.href=targetpage+"?done";
</script>
<?php } ?>
<!--Delete-->
<?php ?>
<script>
var targetpage = "<?php echo $targetpage ?>";
location.href=targetpage+"?done";
</script>
С моим текущим кодом, я только в состоянии использовать выбранный массив chkbox[]
для одна обработка, т.е. Change All
. Я не знаю, как использовать тот же массив для кнопки Delete All
.
Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com). –
Вместо того, чтобы отправлять javscript в браузер и делать полный раунд, почему бы не использовать '' header '' ('Location: another_page.php'); ' – RiggsFolly
Я прав, полагая, что вы хотите, чтобы кто-то написал процедуру« Удалить все »для ты? – RiggsFolly