Вы можете использовать теги данных для достижения этого (код является лишь примером, демонстрирующим точку):
PHP / HTML
<?php foreach ($files as $key => $file) : ?>
<tr>
<td>
<span class="file-name" data-id="<?php echo $key; ?>">
<?php echo basename($file); ?>
</span>
</td>
<td>
<button type="submit"
class="go-btn"
name="go-button"
value="Go"
data-id="<?php echo $key; ?>" >
Go
</button
</td>
</tr>
<?php endforeach; ?>
JavaScript (jQuery)
jQuery(document).ready(function($)
{
$('.go-btn').click(function(e)
{
//pass in e(vent) to prevent the default behaviour of type="submit"
e.preventDefault();
let target = $(this).attr('data-id'),
spanEl = $('.file-name[data-id='+ target +']');
//do whatever with the spanEl - e.g. .text() to get value
//send the file / ID - depending on how you're retrieving these files
$.ajax({
data: {key: 'value'}, //change to what you want
type: 'post',
url: '/path/to/script.php',
success: function(res)
{
alert(res)
},
error: function(res)
{
//log the response for debugging
console.log(res);
//tell the user it failed
alert('The dark elves have been here.. they broke it!')
}
})
})
});
script.php
<?php
# worth nothing that if you're posting a file (with intention of using $_FILES)
# that you need to change your ajax, add `processData: false, contentType: false, cache: false`
# and add `enctype="multimedia/form-data"` as an attribute to your form
$value = $_POST['key']; # key: = index name
# run conversion on the file
# here we can add a success/error msg
echo ($success ? 'It converted!' : 'Conversion failed');
К концу этого у вас должна быть файловая структура, похожая на (или, по крайней мере, я бы сделал это так):
Project_Root
----app
--------convert.php
----index.php
----pub
--------js
------------main.js