У меня есть строка, содержащая поля счета. Если счет оплачен, администратор нажимает кнопку «оплачено». Результатом будет изменение всего цвета фона этой строки, и этот цвет будет сохранен в db. Теперь проблема в том, как сохранить цвет фона этой строки в базе данных.
Вот код, который меняет цвет фона, но не сохраняет в базе данных.
function mark_complete(i){
if (confirm('Are you sure you want to proceed with this action?')){
$('tr').click(function () {
if (this.style.background == "" || this.style.background = = "white") {
$(this).css('background', 'yellow');
}
else {
$(this).css('background', 'white');
}
});
}
}
@iNullPointer Я упомянул свой код, который меняет цвет фона этой строки, теперь я не понимаю, как я должен сохранять в db и делать этот цвет постоянным, даже если URL-адрес снова перезагружается.
Хорошо, теперь в чем проблема
Теперь я хочу сохранить цвет навсегда, даже если страница неоднократно перезагружается.
Флаг, который вы должны сохранить в базе данных, должен быть логическим paid, а не строковым background-color.
Как упоминал Часка, в вашей базе данных у вас должен быть статус для каждой строки ... что-то вроде "оплачено", "выполнено", "выставлено счет" и т. д. Когда вы отображаете свои строки, вы просто добавляете класс CSS в ваша строка в зависимости от статуса строки. Никогда не сохраняйте цвет в базе данных. Это плохая архитектура. Цвет должен управляться в CSS с помощью классов. Представьте, что вы хотите изменить «платный» с красного на темно-красный ... вам придется обновить всю свою базу данных для изменения цвета.



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


Предполагая, что вы используете PHP в качестве серверного языка. Для начала создадим функцию ajax для вызова PHP-скрипта. Вы создадите файл для вставки ваших значений в ваш db. Я назову его, например, addColor.php
function mark_complete(i){
if (confirm('Are you sure you want to proceed with this action?')){
$('tr').click(function () {
if (this.style.background == "" || this.style.background = = "white") {
$(this).css('background', 'yellow');
$.ajax({
type: "POST",
url: 'addColor.php',
data: {color:'yellow'},
success: function (data) {
console.info(data);
},
});
}
else {
$(this).css('background', 'white');
$.ajax({
type: "POST",
url: 'addColor.php',
data: {color:'white'},
success: function (data) {
console.info(data);
},
});
}
});
}
}
addColor.php
if (isset($_POST['color'])){
$color = $_POST['color'];
$con = new mysqli($db_hostname, $db_username, $db_password, $db_databasename);
$stmt = $con->prepare("UPDATE `color_tbl` SET `color` = ?");
$stmt->bind_param("s", $color);
$stmt->execute();
$stmt->close();
}
Надеюсь на эту помощь и подскажу
Сообщество SO здесь не для того, чтобы писать код для вас. Продемонстрируйте свои усилия и обновите свой ответ тем, что вы пробовали до сих пор ??