Отправить данные из выбранной строки таблицы в командный файл нажатием кнопки php / jquery - PullRequest
0 голосов
/ 09 июля 2020

Пример Я создал пользовательский интерфейс, отображающий базу данных с путями к папкам. Затем пользователь выбирает пути, которые он хотел бы открыть, и отправляет их на поиск. php. В этом случае я выбрал тестовый идентификатор 1,4 и 6. Затем пользователь нажимает кнопку «Выполнить» внутри строки и загружает ajax. php, ajax2. php и ajax3. php. Индикатор выполнения (зеленый) покажет процесс выполнения сценариев вместе с текстом состояния.

Проблема в том, что я не могу найти способ индивидуализировать каждый «идентификатор теста» внутри каждой строки. Сначала я использовал id вместо class внутри тегов ((button), (progress)), но это будет работать только для первого выбранного идентификатора теста. И если бы я использовал "класс", все кнопки имели бы одинаковую функцию, и все полосы загрузки загрузились бы.

Поиск. php

<?php
...
 while($row = $result->fetch_assoc()){
            $field1name = $row["test_id"];
            $field2name = $row["path"];
            $field3name = $row["video1_path"];
            $field4name = $row["video2_path"];
            $field5name = $row["video3_path"];
            $field6name = $row["video4_path"];

          echo "<tr>
                  <td> ".$field1name." </td>
                  <td> ".$field2name." </td>
                  <td> ".$field3name." </td>
                  <td> ".$field4name." </td>
                  <td> ".$field5name." </td>
                  <td> ".$field6name." </td>

                  <td><div>
                        <button id='btn'>Run</button>
                      </div></td>

                  <td><div><progress id='progBar' value='0' max='100'></progress></div></td>

                  <td><div><p id='progress-text' class='progress-text'></p></div></td>

                  <td><div id='result'>
                    <p></p>
                  </div></td>

                </tr>";
        }
      }else {
        echo '<span style="color:#ff0000;text-align:center;">No Test ID Selected!</span>';
      }
    }


    // Close connection
    mysqli_close($conn);
  ?>
  </table>
</div>


<!--Uses jquery to run 3 scripts and displays it in a progress bar-->
<script>
$(document).ready(function(){
  $("#btn").click(function(){

    //Start of 1st script
      $.ajax({
        url: "ajax.php",
        type:"POST",
        success: function(data) {
          //alert("File 1 Completed")
            $("#progress-text").text("Executing file 1");
            $('#progBar').val(25);

            //Start of 2nd script
            $.ajax({
              url: "ajax2.php",
              type:"POST",
                success: function(data2) {
                  //alert("File 2 Completed")
                  $("#progress-text").text("Executing file 2");
                  $('#progBar').val(50);

                  //Start of 3rd script
                  $.ajax({
                    url: "ajax3.php",
                    type:"POST",
                      success: function(data2) {
                        //alert("File 2 Completed")
                         $("#progress-text").text("Complete");
                         $('#progBar').val(100);


                        //Try to edit the bottom part <a>
                         $("#result").load("pdf_report.php");

                      }
                  })
                }
            })
        }
    })
    return false;
  });
});



</script>

Здесь , путь ($ field2name) отправляется в пакетный файл в качестве входного аргумента

ajax. php

<?php include 'search.php' ?>
<?php
$var1 = $field2name;
// $var2 = "username";   //this is username
// $var3 = "password";    //this is username
// $var4 = "C:\myCSV_FolderPath";
$bat_file = "ecutestauto.bat " . escapeshellarg($var1) . " " . escapeshellarg($var2) . " " . escapeshellarg($var3) . " " . escapeshellarg($var4) . " ";
$output = null;
exec($bat_file, $output);

ecutestauto. bat

@echo off

set name=%1
START "" "%name%"

Примечание: ajax2. php и ajax3. php предназначены только для практики и помогают имитировать полосу загрузки.

Проблема : Я хочу индивидуализировать каждый тестовый идентификатор внутри каждой строки и отправить соответствующий путь внутри строки таблицы в файл bat одним нажатием кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...