Сообщение в модальном окне

validolius

Новичок
Здравствуйте, такая проблема:
сообщения хранятся в базе, выводятся на страничку скриптом, приведённым ниже. Непрочитанные сообщения имеют флажок red=1, прочитанные red=0. Хочу сделать, чтобы после открытия в модальном (всплывающем) окне открытое сообщение помечалось прочитанным, но никак не соображу, как это сделать. По условию
PHP:
if ("document.getElementById('light_msg$msg_id').style.display='block';document.getElementById('fade').style.display='block'" == TRUE)
не выбранное, а всё сообщения помечаются прочитанными :( Помогите, пожалуйста, решить проблему, чтобы помечалось то сообщение, для которого было открыто окно по ссылке.
PHP:
<?
#	Выборка сообщений для получателя	
$query = mysql_query("select a.id, a.author, a.message, a.red from messages a, users b 
where a.author = b.login and poluchatel = '$name' order by date desc;") or die(mysql_error());
if(empty($query)){
echo "Нет сообщений";
} else {
#	Список полученных сообщений в цикле
while ($row=mysql_fetch_array($query)) {
	$msg_id = $row['id'];
	$message = $row['message'];
# Печатаем на страничке сообщения в виде ссылок
	if ($row[red] == 1)
	{
	# Если Red = 1, то сообщение НЕ помечено, как ПРОЧИТАННОЕ и оно толстое
	print <<< HERE
	<a href = "javascript:void(0)" onclick = "document.getElementById('light_msg$msg_id').style.display='block';document.getElementById('fade').style.display='block';">
HERE;
	echo '<b>'.$msg_id.' '.$message.'</b>
	</a>';
		if ("document.getElementById('light_msg$msg_id').style.display='block';document.getElementById('fade').style.display='block'" == TRUE)
		{
		$mark = mysql_query("update messages set red = 0 where id = '$msg_id';") or die(mysql_error());
		}
	} else {
	# Если Red = 0, то сообщение помечено, как ПРОЧИТАННОЕ и оно тонкое
	print <<< HERE
	<a href = "javascript:void(0)" onclick = "document.getElementById('light_msg$msg_id').style.display='block';document.getElementById('fade').style.display='block'">
HERE;
	echo $message;
	echo '</a>';
	}
}
?>
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
флажок red=1, прочитанные red=0.
Дурацкое название.
Потом сам будешь путаться.
Почему-бы не назвать поле не "красным", а is_read ?

if ("document.getElementById('light_msg$msg_id').style.display='block';document.getElementById('fade').style.display='block'" == TRUE)
Бред какой-то ты делаешь
PHP:
var_dump('any_string' == true); => bool(true)
 

validolius

Новичок
Дурацкое название.
Потом сам будешь путаться.
Почему-бы не назвать поле не "красным", а is_read ?
red - это не "красный", а "читать" в прошедшем времени, неправильный глагол.

Бред какой-то ты делаешь
PHP:
var_dump('any_string' == true); => bool(true)
Может подскажешь тогда, как правильно мне по событию onclick сделать апдейт поля?

За ссылку на faq спасибо, это "то, о чём вы давно хотели, но боялись спросить" :)
 

validolius

Новичок
Хорошо, этим разобрались :) Я понял, что перепутал само слово и его транскрипцию. А вот что делать с проблемой, из-за которой была создана эта тема? Как по событию onclick сделать апдейт поля?
 

validolius

Новичок
Ну, как-бы апдейт в скрипте есть... Как сделать, чтобы он отрабатывал тогда, когда нужно?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
я думаю, что написать необходимое условие при просмотре сообщения
 
Сверху