Пример Я создал пользовательский интерфейс, отображающий базу данных с путями к папкам. Затем пользователь выбирает пути, которые он хотел бы открыть, и отправляет их на поиск. 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 одним нажатием кнопки.