Автоматическое обновление ячейки таблицы

mychatik

Support
Команда форума
Регистрация
26.05.15
Сообщения
478
Реакции
387
Баллы
63
Веб-сайт
mychatik.ru
У меня в чате сделан автоматический вывод графника диджея, ведущего эфир, возле плеера в top.php.

Всё работает идеально, за исключением одного неудобства.
Ник диджея "висит" и после выхода его с радио. Чтобы увидеть новую картинку - нужно обновить страницу, или фрейм.
Но это очень неудобно, так как вместе с фреймом обновляется и само радио, выключаясь при этом.
Разметка производится подобным образом:
HTML:
<table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td rowspan="2" align="center" valign="middle" width="131">
<!-- BEGINS: RADIO PLAYER CODE -->
<script type="text/javascript">
< ... тут код плеера ... >
</script>
<!-- ENDS: RADIO PLAYER CODE --> </td> <td rowspan="2">&nbsp;</td> <td align="middle"> &nbsp; (ячейка зарезервирована для кнопки стола заказов) </td> </tr> <tr>
<td align="middle"> <?php include ("../../Globus_FM/dj_vars.php"); echo $djnick; ?> </td> </tr>
</table>
Задача - обновлять только ячейку с
PHP:
<?php include ("../../Globus_FM/dj_vars.php"); echo $djnick; ?>
Как это сделать грамотно?
Перелопатил кучу информации, но везде идёт описание обновления из MySQL. А мне нужно не это.
Нашёл только такой совет:
Присвоить ячейке id и записать
PHP:
 jquery $('#cell_id3').html('new value');
Но что-то нифига в этом не пойму...

Сам додумался только до того, чтобы в ячейку впихнуть фрейм и в нём обновлять содержимое.
Сделать что-то типа такого:
PHP:
<td align="middle">
<iframe src="../../Globus_FM/dj_nik.html" frameborder="0" scrolling="no"></iframe> </td>

А сам dj_nik.html сделать типа такого:
HTML:
<html>
<head> <title>Ник диджея</title>
<meta http-equiv="refresh" content="120; url=<?php echo $chat_url."Globus_FM/dj_nik.html?rand=".rand(); ?>">
</head>
<body>
<?php include ("../../Globus_FM/dj_vars.php"); echo $djnick; ?>
</body>
</html>

Этот код я не тестировал. Мне он что-то не очень нравится...
Элегантней смотрится через jquery. Но никак не найду, как это сделать.
А вообще, как правильнее решить эту задачу?
 
Последнее редактирование:

stream

Support
Команда форума
Регистрация
09.09.14
Сообщения
957
Реакции
625
Баллы
93
У меня в чате сделан автоматический вывод графника диджея, ведущего эфир, возле плеера в top.php.

Всё работает идеально, за исключением одного неудобства.
Ник диджея "висит" и после выхода его с радио. Чтобы увидеть новую картинку - нужно обновить страницу, или фрейм.
Но это очень неудобно, так как вместе с фреймом обновляется и само радио, выключаясь при этом.
Разметка производится подобным образом:
HTML:
<table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td rowspan="2" align="center" valign="middle" width="131">
<!-- BEGINS: RADIO PLAYER CODE -->
<script type="text/javascript">
< ... тут код плеера ... >
</script>
<!-- ENDS: RADIO PLAYER CODE --> </td> <td rowspan="2">&nbsp;</td> <td align="middle"> &nbsp; (ячейка зарезервирована для кнопки стола заказов) </td> </tr> <tr>
<td align="middle"> <?php include ("../../Globus_FM/dj_vars.php"); echo $djnick; ?> </td> </tr>
</table>
Задача - обновлять только ячейку с
PHP:
<?php include ("../../Globus_FM/dj_vars.php"); echo $djnick; ?>
Как это сделать грамотно?
Перелопатил кучу информации, но везде идёт описание обновления из MySQL. А мне нужно не это.
Нашёл только такой совет:
Присвоить ячейке id и записать
PHP:
 jquery $('#cell_id3').html('new value');
Но что-то нифига в этом не пойму...

Сам додумался только до того, чтобы в ячейку впихнуть фрейм и в нём обновлять содержимое.
Сделать что-то типа такого:
PHP:
<td align="middle">
<iframe src="../../Globus_FM/dj_nik.html" frameborder="0" scrolling="no"></iframe> </td>

А сам dj_nik.html сделать типа такого:
HTML:
<html>
<head> <title>Ник диджея</title>
<meta http-equiv="refresh" content="120; url=<?php echo $chat_url."Globus_FM/dj_nik.html?rand=".rand(); ?>">
</head>
<body>
<?php include ("../../Globus_FM/dj_vars.php"); echo $djnick; ?>
</body>
</html>

Этот код я не тестировал. Мне он что-то не очень нравится...
Элегантней смотрится через jquery. Но никак не найду, как это сделать.
А вообще, как правильнее решить эту задачу?
Глянь эту штуку - VOC++ BSE - Количество писем в оффлайн РМ (16)
...Когда-то переделывал этот мод для вывода списка присутствующих в чате - автоматически обновляется) И на денвере использовал, чтобы не морочиться - вывод сообщений общего канала)
 

Rain

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
367
Реакции
321
Баллы
63
Возраст
29
JS [dj_layer - ID ячейки или div-a или еще какого элемента] (нужен jQuery)
Код:
function refresh_dj()
{
$.ajax({ method: "POST", url: "/path/to/script.php", data: { action: "refresh" }
}) .done(function( msg ) { $('#dj_layer').html(msg); });
}
setInterval(refresh_dj, 1000)
PHP
PHP:
<?php
if(isset($_POST['action']) && $_POST['action'] == "refresh")
{
echo '<img src="/path/to/dj_image.jpg" />';
}
Код написан на коленке.
 
Сверху Снизу