как обрабатывать данные из нескольких флажков и нескольких отправок с помощью Ajax - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь разместить данные из нескольких флажков с несколькими кнопками отправки.Важно: кнопки отправки не являются частью формы, потому что они находятся в другом месте на сайте.

Это то, что у меня есть:

<form class="checkboxform" action="" method="post">
   <input type="checkbox" name="check_list[]" value="C/C++"><label>C/C++</label><br/>
   <input type="checkbox" name="check_list[]" value="Java"><label>Java</label><br/>
   <input type="checkbox" name="check_list[]" value="PHP"><label>PHP</label><br/>
</form>

Кнопки отправки:

<button type="button" id="delete" name="delete" onclick="submitForm()" value="Delete"/>Delete</button>
<button type="button" id="move" name="move" onclick="submitForm()" value="Move"/>Move</button>
<button type="button" id="copy" name="copy" onclick="submitForm()" value="Copy"/>Copy</button>

Ajax:

function submitForm(url){
   var data = $(".checkboxform").serialize();
   $.ajax({
    type : 'POST',
    url  : url,
    data: data,
    success :  function(data){
        $(".echo").html(data);
       }
   });
};

php:

if($_POST['delete']) {
  if(isset($_POST['check_list'])){//to run PHP script on submit
    if(!empty($_POST['check_list'])){
    // Loop to store and display values of individual checked checkbox.
        foreach($_POST['check_list'] as $selected){
        echo $selected."</br>";
        }
        // code for delete goes here
        echo 'Files are  deleted!';
    }
  }
}

if($_POST['move']) {
  if(isset($_POST['check_list'])){//to run PHP script on submit
    if(!empty($_POST['check_list'])){
    // Loop to store and display values of individual checked checkbox.
        foreach($_POST['check_list'] as $selected){
        echo $selected."</br>";
        }
        //code for moving files goes here
        echo 'Files are moved!';
    }
  }
}

if($_POST['copy']) {
  if(isset($_POST['check_list'])){//to run PHP script on submit
    if(!empty($_POST['check_list'])){
    // Loop to store and display values of individual checked checkbox.
        foreach($_POST['check_list'] as $selected){
        echo $selected."</br>";
        }
        // code for copy goes here
        echo 'Files are copied!';
    }
  }
}

При отправке php не обрабатывает данные.Что я делаю не так?Может ли кто-нибудь помочь мне с этим?

Весь код находится в одном файле, который называется index.php

1 Ответ

0 голосов
/ 18 февраля 2019

Ваша функция js имеет параметр

function submitForm(url){

Но когда вы вызываете функцию, набор параметров не устанавливается

 onclick="submitForm()"

Поскольку этот параметр является URL-адресом для отправки POST, это никогда не добирается там.Вероятно, вы должны увидеть некоторые ошибки в окне разработчика браузера.F12, чтобы открыть окна разработчика.

Поскольку вы запускаете один и тот же скрипт PHP независимо от того, является ли он удалением, перемещением или копированием.Я бы удалил параметр и жестко закодировал URL в функции следующим образом.

function submitForm(){
   var data = $(".checkboxform").serialize();
   $.ajax({
    type : 'POST',
    url  : 'path/to/the.php',
    data: data,
    success :  function(data){
        $(".echo").html(data);
       }
   });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...