У меня есть таблица, как показано ниже:
<table class = "table">
<thead class = "thead-dark">
<tr>
<th scope = "col">ID</th>
<th scope = "col">Nazwa</th>
<th scope = "col">Cena</th>
<th scope = "col">Kupujący</th>
<th scope = "col"> </th>
</tr>
</thead>
<tbody>
<?php foreach($data as $key => $value): ?>
<tr>
<td><?php echo $value['id']; ?></td>
<td><?php echo $value['name']; ?></td>
<td><?php echo $value['price']; ?></td>
<td><?php echo $value['buyer']; ?></td>
<td><button type = "button" name = "button2" >Usuń</button></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
как удалить элемент из этого списка, нажав на кнопку в последнем столбце таблицы?
мой php:
$jsonData = file_get_contents("data.json");
$data = json_decode($jsonData, true);
спасибо за любую помощь, я не знаю, как получить значение, нажав кнопку:/
@PrateikDarji, можете ли вы показать, как передавать данные при нажатии кнопки? :( Я новичок в php :(
Конечно, не могли бы вы объяснить мне, как загружаются данные? код php и html находится на одной странице?
да, все на этой же странице
я не знаю, как получить ключ записи в таблице, чтобы удалить эту строку в php-скрипте
проверить мой ответ



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Кажется, что ваши данные получены из файла, поэтому для этого вам нужно выполнить все эти шаги в одном и том же php-скрипте:
json_decodeunset($data['id'])Вот пример:
$jsonData = file_get_contents("data.json");
$data = json_decode($jsonData, true);
// here we go
if (isset($_POST['item_key']) && !empty($_POST['item_key'])) {
$data = array_values($data);
$i=0;
foreach($data as $element) {
//check if it's the right item
if (intval($_POST['item_key']) == $element['id']){ // intval only if you are sure id passed in POST[item_key] always integer
unset($data[$i]);
}
$i++;
}
file_put_contents('data.json', json_encode(array_values($data)));
}
$_POST['item_key'] придет после отправки формы в html, см. ниже.
В ваш html-код вам нужно будет добавить следующее:
<table class = "table">
<thead class = "thead-dark">
<tr>
<th scope = "col">ID</th>
<th scope = "col">Nazwa</th>
<th scope = "col">Cena</th>
<th scope = "col">Kupujący</th>
<th scope = "col"></th>
</tr>
</thead>
<tbody>
<?php foreach($data as $key =>
$value): ?>
<tr>
<td><?php echo $value['id']; ?></td>
<td><?php echo $value['name']; ?></td>
<td><?php echo $value['price']; ?></td>
<td><?php echo $value['buyer']; ?></td>
<td>
<!-- action = "#" means you will stay in the same script after submit -->
<form action = "#" method = "POST">
<input
hidden
type = "text"
name = "item_key"
value = "<?php echo $value['id'];?>"
/>
<input type = "submit" value = "Remove" />
</form>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
ОБНОВЛЯТЬ
unset с array_values после json_decodeheader(refre..), так как обновление будет выполняться путем отправки формы в тот же скрипт.я получаю Warning: Cannot modify header information - headers already sent by (output started at /24/table.php:1) in /24/table.php on line 56 после запуска, строка 56 ваша header("Refresh:0");
и удаление не работает правильно: / после нажатия на кнопку элемент все еще здесь
Можете ли вы привести пример вашего data.json?
`[ { "id": 1, "name": "Cyberpunk 2077", "покупатель": "V", "price": "199" } ]`
в этом случае я буду использовать array_values для получения данных после декодирования, скоро сообщу вам
Посмотрите также полный пример здесь: github.com/mostafero/php-remove-html-table-item
foreach($data as $i => $element) { вместо того, чтобы самостоятельно управлять переменной $i.
вы можете передать
$keyпри нажатии кнопки в php-форму, а с помощьюunset($data[$key])на php вы можете удалить определенную запись из массива