Оттуда я выбираю строки и вывожу в html таблицу.
В таблицу MySQL время от времени добавляются записи.
Задача.
Добавлять к таблице новые записи.
По букварям и учебникам написал вот что:
var auto_refresh = setInterval(
function ()
{
$('#load_tweets').load('./modules/record_count.php').slideDown("slow");
}, 1000); // refresh every 10000 milliseconds
ну а потом, соответственно вывожу в блок. Все выводится... И я даже в record_count.php могу сделать так, чтобы вынимались только свежие записи. НО беда в том, что данные в блоке load_tweets обновляются полностью, а мне надо некоторое прирощение уже того что есть. Нужно чтобы в таблицу (в блок load_tweets) загружались только вновь пришедшие данные, а не заменялись.
Спустя 5 минут, 14 секунд (26.11.2010 - 11:50) Basili4 написал(а):
Делай функцию которая строит таблицу передавай ей количество как её поступать перестроить по новой, удалить записи или добавить. алгоритм довольно сложный получится
но если таблица большая то проще так и делать
но если таблица большая то проще так и делать
Спустя 29 минут, 37 секунд (26.11.2010 - 12:20) Гость_Michael написал(а):
не используй load. А например $.post и в нем новые строки append-ом добавляй к таблице.
Спустя 5 минут, 34 секунды (26.11.2010 - 12:26) __romka_ написал(а):
var auto_refresh = setInterval(
function ()
{
$('#load_tweets').post('./modules/record_count.php').slideDown("slow");
}, 1000); // refresh every 10000 milliseconds
а с append-ом непонятно.... куда его?
попробовал вот так:
var auto_refresh = setInterval(
function ()
{
$('#load_tweets').load('./modules/record_count.php').slideDown("slow");
$('#load_tweets').append('./modules/record_count.php').slideDown("slow");
}, 1000); // refresh every 10000 milliseconds
в результате тоже самое + вместо результата работы record_count.php, выводится просто ./modules/record_count.php
и вот так:
var auto_refresh = setInterval(
function ()
{
$('#load_tweets').append('./modules/record_count.php').slideDown("slow");
}, 1000); // refresh every 10000 milliseconds
появляется новая и новая строка ./modules/record_count.php вместо результата работы этого файла
Спустя 13 минут, 50 секунд (26.11.2010 - 12:39) Adil написал(а):
Когда возвращаешь запись, записи возвращай в формате id,text
ID загоняй в массив, там будут id которые уже находятся на странице. При новом запросе записей, смотришь их id на наличие в массиве. Если нет в массиве, то append-ом добавляешь.
ID загоняй в массив, там будут id которые уже находятся на странице. При новом запросе записей, смотришь их id на наличие в массиве. Если нет в массиве, то append-ом добавляешь.
Спустя 27 минут, 24 секунды (26.11.2010 - 13:07) __romka_ написал(а):
кроме того - с интервалом в 1000 милисекунд нужно к базе обращаться (дергать файл record_count.php), и только в случае, если есть новая запись - добавлять ее к существующей уже таблице.
А получается так, что с интервалом в 1000 милисекунд происходит обращение к базе и перерисовывается заново вся таблица
А получается так, что с интервалом в 1000 милисекунд происходит обращение к базе и перерисовывается заново вся таблица
Спустя 7 дней, 1 час, 14 минут, 16 секунд (3.12.2010 - 14:21) sharki написал(а):
__romka_ Adil привел нормальный пример, тебе придется AJAX'ом передавать значения своему файлу чтобы он проверял есть ли новые данные кроме тех которые он вывел, а передавтаь надо массив, можешь примерно вот так
$('#load_tweets').load('./modules/record_count.php', {id: massiv}).slideDown("slow");
{id: massiv} - это строка означает что он передаст файлу /modules/record_count.php данные метом POST ловить их там надо $_POST['id'] и дальше уже работать с полученным массивом
$('#load_tweets').load('./modules/record_count.php', {id: massiv}).slideDown("slow");
{id: massiv} - это строка означает что он передаст файлу /modules/record_count.php данные метом POST ловить их там надо $_POST['id'] и дальше уже работать с полученным массивом
Спустя 2 дня, 21 час, 46 минут, 21 секунда (6.12.2010 - 12:07) __romka_ написал(а):
sharki
вот так
вобще не работает. Я хочу сказать, что даже скрипт не выполняется... тишина...
неправильно написал?
вот так
$('#load_tweets').load('./modules/record_count.php', {id: massiv}).slideDown("slow");
вобще не работает. Я хочу сказать, что даже скрипт не выполняется... тишина...
неправильно написал?
Спустя 7 минут, 45 секунд (6.12.2010 - 12:15) sharki написал(а):
{id: massiv} - ну наверное надо в скрипте объявить переменную
А щас у тебя нету этой переменной, и следовательно ничего не передается.
Почитай в инете про JS чтобы понимать что ты вообще делаешь, а то в будущем будут трудности с этими вещами..
var massiv = // сюда помещаешь что тебе надо для передачи в фал record_count.php
А щас у тебя нету этой переменной, и следовательно ничего не передается.
Почитай в инете про JS чтобы понимать что ты вообще делаешь, а то в будущем будут трудности с этими вещами..
Спустя 14 минут, 51 секунда (6.12.2010 - 12:30) __romka_ написал(а):
сделал так:
все равно не отрабатывает.
var auto_refresh = setInterval(
function ()
var massiv = new Array();
{
$('#load_tweets').load('./modules/browse/engine_1031.php', {id: massiv}).slideDown("slow");
}, 1000);
все равно не отрабатывает.
Спустя 3 минуты, 54 секунды (6.12.2010 - 12:34) sharki написал(а):
__romka_
А что он у тебя должен получить? =) пустой массив?
Попробуй просто так сделать, чтобы понять как работает
в engine_1031.php
выведи просто ответ типа
А что он у тебя должен получить? =) пустой массив?
Попробуй просто так сделать, чтобы понять как работает
var auto_refresh = setInterval(
function ()
var massiv = 123;
{
$('#load_tweets').load('./modules/browse/engine_1031.php', {id: massiv}).slideDown("slow");
}, 1000);
в engine_1031.php
выведи просто ответ типа
echo $_POST['id'];
Спустя 10 минут, 29 секунд (6.12.2010 - 12:44) __romka_ написал(а):
не совсем то я имею ввиду... файл .php отрабатывает.
там у меня после echo $_POST['id']; - еще проверочка есть - echo "bla-bla";
так вот без передачи переменной ", {id: massiv}" - файл отрабатывает и пишет bla-bla, а с передачей - не работает.
просто ничего не происходит (((((
там у меня после echo $_POST['id']; - еще проверочка есть - echo "bla-bla";
так вот без передачи переменной ", {id: massiv}" - файл отрабатывает и пишет bla-bla, а с передачей - не работает.
просто ничего не происходит (((((
Спустя 20 минут, 17 секунд (6.12.2010 - 13:05) sharki написал(а):
Ну создай новый файл test.php и впиши туда 3 строчки кода, посмотри как работает эта функция, а потом уже думать
вот мой тестовый файл, всё работает
test.php
вот мой тестовый файл, всё работает
<head>
<script src="jquery-1.4.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
var posts = 23434;
$('#loads').load('test.php', {id: posts}).fadeIn("slow");
}, 1000);
</script>
</head>
<html>
<body>
<div id="loads"></div>
</body>
</html>
test.php
<?
echo $_POST['id'];
?>
Спустя 28 минут, 41 секунда (6.12.2010 - 13:33) __romka_ написал(а):
аботает!
спсб
спсб
Спустя 1 час, 27 минут, 57 секунд (6.12.2010 - 15:01) __romka_ написал(а):
а массив туда как передать? ((
у меня вот что:
Приходит только последнее значение массива. Только 'c'.
И размер массива (измерял) = 1
у меня вот что:
var auto_refresh = setInterval(
function ()
{
var posts = [];
posts[0] = 'a';
posts[1] = 'b';
posts[2] = 'c';
$('#load_tweets').load('./modules/browse/engine_1031.php', {id: posts}).fadeIn(\"slow\");
}, 1000);
Приходит только последнее значение массива. Только 'c'.
И размер массива (измерял) = 1
Спустя 14 минут, 31 секунда (6.12.2010 - 15:16) sharki написал(а):
Спустя 19 часов, 15 минут, 59 секунд (7.12.2010 - 10:32) __romka_ написал(а):
прочитал..
и попробовал несколькими способами.
так вот, если измерить длину массива или вывести массив прямо на этой странице, без передачи - все ок.
А вот в скрипту engine_1031.php массив не передается. В той форме, в которой сейчас написано, приходит:
То есть передается только последний элемент массива.
Видимо неправильно передается... как быт?
и попробовал несколькими способами.
var auto_refresh = setInterval(
function ()
{
/*1 var users = new Array('Artem', 'Irina', 'Sergey', 'Boris'); */
/*2 var users = new Array();
users[0] = "Artem";
users[1] = "Irina";
users[2] = "Sergey";
users[3] = "Boris"; */
/*3 var users = ["Artem", "Irina", "Sergey", "Boris"]; */
$('#load_tweets').load('./modules/browse/engine_1031.php', {id: users}).fadeIn('slow');
}, 1000);
так вот, если измерить длину массива или вывести массив прямо на этой странице, без передачи - все ок.
А вот в скрипту engine_1031.php массив не передается. В той форме, в которой сейчас написано, приходит:
Array
(
[0] => Boris
)
То есть передается только последний элемент массива.
Видимо неправильно передается... как быт?
Спустя 1 час, 13 минут, 58 секунд (7.12.2010 - 11:46) sharki написал(а):
попробуй вот так, только раскоменть там все
$('#load_tweets').load('./modules/browse/engine_1031.php', {id: users[]}).fadeIn('slow');
Спустя 12 минут, 41 секунда (7.12.2010 - 11:58) __romka_ написал(а):
Не получается. Не отрабатывает вобще.
и так:
ни так:
и вот так:
и так:
$('#load_tweets').load('./modules/browse/engine_1031.php', {id: users[]}).fadeIn('slow');
ни так:
$('#load_tweets').load('./modules/browse/engine_1031.php', {id[]: users}).fadeIn('slow');
и вот так:
$('#load_tweets').load('./modules/browse/engine_1031.php', {id[]: users[]}).fadeIn('slow');
Спустя 28 минут, 34 секунды (7.12.2010 - 12:27) sharki написал(а):
Эмс, ты чет тупишь походу, я щас попробовал сделать вот так
и вывел результат
Ответ пришел вот такой на страничку
Array ( [0] => Artem [1] => Irina [2] => Sergey [3] => Boris )
<head>
<script src="jquery-1.4.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
var users = new Array();
users[0] = "Artem";
users[1] = "Irina";
users[2] = "Sergey";
users[3] = "Boris";
$('#loads').load('test.php', {id: users}).fadeIn("slow");
}, 1000);
</script>
</head>
<html>
<body>
<div id="loads"></div>
</body>
</html>
и вывел результат
<?
print_r($_POST['id']);
?>
Ответ пришел вот такой на страничку
Array ( [0] => Artem [1] => Irina [2] => Sergey [3] => Boris )
Спустя 21 час, 37 минут, 20 секунд (8.12.2010 - 10:04) __romka_ написал(а):
все ок. спасибо!
не работало вот почему: у меня Apache, база и все дела крутятся на одной машине, а тестирую я это все удаленно и в адресной строке - пишу IP машины на которой все установлено.
Видимо из за настроек Апача (который отправлял HTTP трафик на локалхост) из за которого и не передавался массив полностью. Сначала подумал - перенастроить Апач, чтобы он отправлял все не на локалхост, а на IP машины на которую он установлен. Но этот вариант отпадает. Потому что таких систем очень много и это непрактично.. IPезде разные. не автоматизируешь.
Буду пробовать 1) без Qury 2) вобще без асинхронной обработки ((((((((((((((((((((((((
не работало вот почему: у меня Apache, база и все дела крутятся на одной машине, а тестирую я это все удаленно и в адресной строке - пишу IP машины на которой все установлено.
Видимо из за настроек Апача (который отправлял HTTP трафик на локалхост) из за которого и не передавался массив полностью. Сначала подумал - перенастроить Апач, чтобы он отправлял все не на локалхост, а на IP машины на которую он установлен. Но этот вариант отпадает. Потому что таких систем очень много и это непрактично.. IPезде разные. не автоматизируешь.
Буду пробовать 1) без Qury 2) вобще без асинхронной обработки ((((((((((((((((((((((((
Спустя 1 день, 2 часа, 56 минут, 37 секунд (9.12.2010 - 13:01) __romka_ написал(а):
$('#loads').load('test.php', {id: users}).fadeIn("slow");
Возсожно ли здесь передать несколько переменных, а не только id?
массив не предлагать )
Спустя 36 минут, 17 секунд (9.12.2010 - 13:37) __romka_ написал(а):
Вопрос снят. оказалось - возможно. вот так:
$('#loads').load('./modules/browse/engine_1031.php', {id: users, id2: users}).fadeIn(\"slow\");