Ich habe eine Website erstellt, die viele Listen/Tabellen (basierend auf PHP) hat. Ich versuche, ein Change All
und Delete All
System für die Listen zu machen. Ich habe bereits checkbox
zu allen einzelnen Listenelementen hinzugefügt. Ich habe auch ein Kontrollkästchen, um alle diese Elemente mit einem Klick auszuwählen. Jetzt bin ich fest, wie man die Änderungs- und Löschoption ausführt. Es war 3 Tage ...ändere und lösche ausgewählte Objekte aus der Liste - PHP
- Ich habe den
Change All
Code richtig gemacht. Aber ich kannDelete All
Teil nicht herausfinden. - Ich weiß nicht, die Variable $ targetpage übergeben, um es danach umleiten zu lassen.
Hier ist der Code:
<!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>
Hier ist der ajaxAction.php Code:
<!--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>
Mit meinem aktuellen Code, bin ich nur in der Lage das ausgewählte Array verwenden chkbox[]
für eine Verarbeitung, dh Change All
. Ich kann nicht das gleiche Array für Delete All
Knopf verwenden.
Sie sind anfällig für [sql injection attacks] (http://bobby-tables.com). –
Statt javscript an den Browser zu senden und eine komplette Rundreise zu machen, warum nicht PHP '' header ('Location: another_page.php') verwenden '' – RiggsFolly
Habe ich recht, wenn ich annehme, dass jemand die 'Delete All'-Verarbeitung für schreiben möchte Du? – RiggsFolly