2016-08-23 4 views
-1

Я создал веб-сайт с большим количеством списков/таблиц (на основе 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.

+0

Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com). –

+0

Вместо того, чтобы отправлять javscript в браузер и делать полный раунд, почему бы не использовать '' header '' ('Location: another_page.php'); ' – RiggsFolly

+1

Я прав, полагая, что вы хотите, чтобы кто-то написал процедуру« Удалить все »для ты? – RiggsFolly

ответ

0

После использования метода проб и ошибок и попыток в течение двух недель я, наконец, получил решение ON MY OWN, и у меня есть серьезная проблема, потому что никто из этого форума не заботился о том, чтобы показать мне решение.

Все было просто. Все, что я должен был сделать, чтобы использовать $_POST вместо $_REQUEST и использовать разные имена обе кнопки, как это:

<input class="w3-btn w3-green" type="submit" name="submit1" value="Change All"> 
<input class="w3-btn w3-red" type="submit" name="submit2" value="Delete All"> 

Итак, я изменил ajaxAction.php на:

<?php 
//Change All 
if(isset($_POST['submit1'])){ 
    if(!empty($_POST['chkbox'])){ 
     $targetpage = $_REQUEST['targetpage']; 
     foreach($_POST['chkbox'] as $selected){ 
      $sql_all = "update `table` set value='123' WHERE `id` = '$selected'"; 
      mysql_query($sql_all) or die(mysql_error()); 
     } 
    } 
?> 

<script> 
    location.href="tables.php?done"; 
</script> 
<?php } ?> 


<?php 
//Delete All 
if(isset($_POST['submit2'])){ 
    if(!empty($_POST['chkbox'])){ 
     foreach($_POST['chkbox'] as $selected){ 

      $sql_all = "DELETE FROM `table` WHERE `id` = '$selected'"; 
      mysql_query($sql_all) or die(mysql_error()); 
     } 
    } 
?> 

<script> 
    location.href="tables.php?done"; 
</script> 
<?php } ?> 

Все, что вам нужно было сказать, мне, что я должен использовать $_POST. Никто из Stack Overflow не помог мне.

Смежные вопросы