Таким образом, вы всегда восстанавливаете первый тд
var variable=document.getElementsByTagName("td")[0].innerHTML;
Вы должны щелкнуть и восстановить этот конкретный элемент и перейти в иерархию узлов
Использовать innerText вместо innerHtml
Мой пример основан на XMLHttpRequest объекте для взаимодействия с сервером.Вы можете использовать любую службу, чтобы сделать запрос асинхронным с сервером.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<table>
<tr>
<th>id</th>
<th>name</th>
<th>Option</th>
</tr>
<tr>
<td>1</td>
<td>Mark</td>
<td><button type="button" onclick="getId(this)">GetId</button></td>
</tr>
<tr>
<td>45</td>
<td>Francis</td>
<td><button type="button" onclick="getId(this)">GetId</button></td>
</tr>
</table>
<script>
function getId(element) {
const currentTr = element.parentElement.parentElement;
const id = parseInt(currentTr.children[0].innerText);
goToServer(id);
}
function goToServer(id) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', './queryUser.php', true);
//Send the proper header information along with the request
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlhttp.onreadystatechange = function() {
if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
alert(this.responseText);
}
};
// Data to send
xmlhttp.send(`id=${id}`);
}
</script>
</body>
enter code here
QueryUser.php
<?php
$id = $_POST["id"];
echo 'Response: '. $id;
Пример довольно простой, но онпоможет вам в обучении.
Полезные ресурсы