Ajax передать через POST ячейки таблицы
Подскажите, сейчас ajax передает значение ячейки и айди, где произошло редактирование, но если мы ставим в обновление это значение он обновляет все поля таблицы по этому значению, помогите подправить код, как я понимаю надо передать название столбца, чтобы он правильно передавать значение в нужную ячейку.
$(".td").focusout(function () {
var id = this.id;
var split_id = id.split("_");
var field_name = split_id[0];
var value = $(this).text();
$.ajax({
url: 'up.php',//файл с php скриптом, обновляющий данные в бд
type: 'post',
data: { id: field_name, value: value },// отправляем имя поля, новое значение и id, чтобы определить, что конкретно и как надо обновить в таблице
success: function (response) {
console.log('Save successfully');
}
});
});
$id = $_POST['id'];
$value = $_POST['value'];
//подключаемся к бд
$con = mysqli_connect('localhost', 'web', 'admin','table');
//делаем запрос на обновление строки
$query = "UPDATE `test` SET `name`='".$value."', `surname`= '".$value."' WHERE `id`=$id";
mysqli_query($con,$query);
Ответы (1 шт):
Автор решения: ivc-bifk
→ Ссылка
Вопрос закрыт.
$(".td").focusout(function () {
var id = this.id;
var split_id = id.split("_");
var field_name = split_id[0];
var edit_id = split_id[1];
var value = $(this).text();
$.ajax({
url: 'up.php',//файл с php скриптом, обновляющий данные в бд
type: 'post',
data: { field: field_name, value: value, id: edit_id },// отправляем имя поля, новое значение и id, чтобы определить, что конкретно и как надо обновить в таблице
success: function (response) {
console.log('Save successfully');
}
});
});
<td contentEditable='true' class='td' id='name_". $row["id"] ."'>" . $row["name"] . "</td>
<?php
$field= $_POST['field'];
$value = $_POST['value'];
$id = $_POST['id'];
//подключаемся к бд
$con = mysqli_connect('', 'web', 'adminbifk','table');
//делаем запрос на обновление строки
$query = "UPDATE test SET ".$field."='".$value."' WHERE id=".$id;
mysqli_query($con,$query);
?>