У меня есть таблица `bg` в ней id name ext display.
display - это 1 или 0 (фон отображается или нет).
Есть страница управления фоном.
Там выводятся все фоновые изображения:
<?
$q = "SELECT * FROM `bg` ORDER BY `id` ASC";
$result = mysql_query($q);
while($ins = mysql_fetch_array($result)) {
echo '<div style="padding: 10;" class="articles" data-id="'.$ins['id'].'">';
echo '<img src="/images/bg/'.$ins['name'].$ins['ext'].'" width="150"';
if(!$ins['display']) echo ' style="opacity: 0.25;"';
echo '>';
echo '</div>';
}
?>
Те, которые не отображаются (display = 0), полупрозрачные.
Мне надо, чтобы при нажатии на картинку скрипт обращался к БД и меня значение поля display на противоположное. Чтобы это всё без перезагрузки стрнаицы. Для этого у меня есть такой код:
<script type="text/javascript" language="javascript">
$(function(){
$('.articles').on('click', function(){
var artId = $(this).data('id'); // id статьи в базе данных
$.ajax({
url: 'mods/a1.php', // путь к обработчику
type: 'POST', // метод передачи данных
dataType: 'json', // формат данных ожидаемых в ответе
data: {article_id: artId}, // передаваемые данные {ключ1 : значение1, ключ2 : значение2}
success: function(data){
if(data){
$('#output').html(data); // выводим статью в нужный блок
} else {
$('#output').html('Ошибка!'); // сообщение об ошибке
}
}
});
});
});
</script>
Сам этот скрипт обращается к обработчику:
<?
include_once('../config.php');
$q = "SELECT * FROM `bg` WHERE `id` = ".$_POST['article_id'];
$result = mysql_query($q);
$num = mysql_num_rows($result);
if($num > 0) {
$bg = mysql_fetch_array($result);
if($bg['display'] == '0') {
mysql_query("UPDATE `bg` SET `display` = '1' WHERE `id` = ".$_POST['article_id']);
} else {
mysql_query("UPDATE `bg` SET `display` = '0' WHERE `id` = ".$_POST['article_id']);
}
$article_data = 'Изменено '.$_POST['article_id'];
} else {
$article_data = 'Нет '.$_POST['article_id'];
}
echo json_encode($article_data);
?>
Сам этот скрипт работает. При нажатии на картинку через аякс идёт запрос и в БД данные изменяются нормально. Внизу страницы под всеми картинками в блоке <div id="output"></div> выводится текст что "Изменено ID".
Но, мне надо, чтобы картинка тоже менялась. Чтобы она становилась полупрозрачной если поле display было изменено на 0 и наоборот. И чтобы это делалось так же без перезагрузки страницы.
Как это сделать? Заранее спасибо!
Я подобным образом хочу так же реализовать такую штуку, чтобы отмечать флажком письма приходящие с сайта. Например, список писем есть на странице как в обычном почтовом сервисе типа яндекса. От кого, дата и т.д. и Рядом серенький флажок. Нажимаешь на него, без перезагрузки стрнаицы флажок становится красным а в БД для этого письма в поле вносится изменения, что письмо помечено как важное.
Подскажите пожалуйста как это реализовать?