Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.05.2020, 21:48
Интересующийся
Отправить личное сообщение для CORONER Посмотреть профиль Найти все сообщения от CORONER
 
Регистрация: 27.02.2018
Сообщений: 20

Таблица с рандомным контентом
Есть таблица
<table>
    <tr>
        <td>время</td>
        <td>имя и фамилия</td>
        <td>инфо</td>
        <td>инфо</td>
        <td>инфо</td>
        <td>инфо</td>
        <td>инфо</td>
    </tr>
    <tr>
        <td>30 секунд назад</td>
        <td>вася пупкин</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
    <tr>
        <td>45 секунд назад</td>
        <td>ноунем кондрешн</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
</table>


Как сделать вывод рандомной информации в ячейках из текстового документа в режиме реального времени через setInterval? И значения времени рандомно но в нисходящем порядке (15 секунд, 20 секунд и т.д.)?
Как на этом сайте ссылка, блок "Таблица доходов в реальном времени!"
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2020, 00:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,643

фейковая таблица выигрышей
CORONER,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    tbody {
        counter-reset: n 30;
    }

    tbody tr :nth-child(2)  {
            color: #FF0000;
            font-weight: bold;
    }
    tbody tr :nth-child(1):before{
     content: counter(n)" секунд назад";
    counter-increment: n 15;
    }
    </style>

</head>
<body>
<table>
<tbody></tbody>
</table>

<script>
(async function up() {
    const response = await fetch("https://cors-anywhere.herokuapp.com/http://randomuser.ru/api.json")
    const resArr = await response.json();
        let {last, first} = resArr[0].user.name;
        let tr = `<tr><td></td><td>${last} ${first}</td><td>${2000 + Math.trunc(Math.random() * 10000)}</td></tr>`
        const tbody = document.querySelector('table tbody');
        if(tbody.rows.length == 5) tbody.rows[4].remove();
        tbody.insertAdjacentHTML('afterBegin', tr);
        window.setTimeout(up, 3000);
})();

    </script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2020, 11:56
Интересующийся
Отправить личное сообщение для CORONER Посмотреть профиль Найти все сообщения от CORONER
 
Регистрация: 27.02.2018
Сообщений: 20

рони,
Как я понял здесь 3 столбца, в первой выводится значение времени, во втором через json рандомные фамилия, имя.

Вопрос состоит в том, как расширить таблицу до например 6 столбцов, в 4 столбце три рандомных значения "Одобрено, отказано, на рассмотрении", а в 5-ом также рандомно: количество месяцев 2мес до 60 мес, от 7% до 60% и рандомная сумма от 300 000 руб до 480 000 000 с целыми значениями и в 6 столбце рандомно - Квартира, Офис, Дом, Коммерция.
Если необходимо - готов оплатить, ибо решений в интернете и близко нигде не нашёл, а в JS я полный ноль.

upd. (работает через раз)
GET https://cors-anywhere.herokuapp.com/...er.ru/api.json 429 (Too Many Requests), что как я понимаю - превышение лимита обращения к файлу.

Последний раз редактировалось CORONER, 08.05.2020 в 12:46.
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2020, 13:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,643

CORONER,
фамилии и имена даны для примера, их нужно
генерировать на своём сервере, да и все остальные данные.
создайте массивы и выводите.
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    tbody {
        counter-reset: n 30;
    }

    tbody tr :nth-child(2)  {
            color: #FF0000;
            font-weight: bold;
    }
    tbody tr :nth-child(1):before{
     content: counter(n)" секунд назад";
    counter-increment: n 15;
    }
    td{
        border: 1px solid #000000;
    }

    </style>

</head>
<body>
<table>
<tbody></tbody>
</table>

<script>
(async function up() {
    const randomItem = arr => arr[Math.trunc(arr.length * Math.random())];
    const randomNum = (min, max) => min + Math.trunc((max + 1 - min) * Math.random());
    const title = 'Квартира, Офис, Дом, Коммерция'.split(', ');
    const business = randomItem(title)
    const num = randomNum(300, 1000);
    const digit = num < 480 ? ' 000 000' : ' 000'
    const profit = num + digit;
    const percent = randomNum(7, 60);
    const resolution = 'Одобрено, отказано, на рассмотрении'.split(', ');
    const choice = randomItem(resolution);
    const time = randomNum(2, 60);
    //const response = await fetch("https://cors-anywhere.herokuapp.com/http://randomuser.ru/api.json");// эта строка только для примера
    //const resArr = await response.json();
    //    let {last, first} = resArr[0].user.name;
    const people = [{"first":"Георгий","last":"Емельянов"},{"first":"Елизавета","last":"Петрова"}, {"first":"Любовь","last":"Костина"}];
        let {last, first}  =  randomItem(people);
        let tr = `<tr><td></td>
        <td>${last} ${first}</td>
        <td>${business}</td>
        <td>${profit} руб.</td>
        <td>${percent}%</td>
        <td>${time} мес.</td>
        <td>${choice}</td>
        </tr>`
        const tbody = document.querySelector('table tbody');
        if(tbody.rows.length == 5) tbody.rows[4].remove();
        tbody.insertAdjacentHTML('afterBegin', tr);
        window.setTimeout(up, 3000);
})();

    </script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 08.05.2020, 14:21
Интересующийся
Отправить личное сообщение для CORONER Посмотреть профиль Найти все сообщения от CORONER
 
Регистрация: 27.02.2018
Сообщений: 20

рони,
Спасибо Вам огромное!
Последнее, что хотел спросить - как в
const resolution = 'Одобрено, отказано, на рассмотрении'.split(', ');

Использовать html коды, например:
<span class="yeptable">Одобрено</span>
Ответить с цитированием
  #6 (permalink)  
Старый 08.05.2020, 14:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,643

CORONER,
const resolution = '<span class="yeptable">Одобрено</span>, отказано, на рассмотрении'.split(', ');

и сss поправьте строки 11 и 15
tbody tr td:nth-child

Последний раз редактировалось рони, 08.05.2020 в 14:39.
Ответить с цитированием
  #7 (permalink)  
Старый 08.05.2020, 14:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,643

CORONER,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    tbody {
        counter-reset: n 30;
    }

    tbody tr td:nth-child(2)  {
            color: #FF0000;
            font-weight: bold;
    }
    tbody tr td:nth-child(1):before{
    content: counter(n)" секунд назад";
    counter-increment: n 15;
    }
    td{
        border: 1px solid #000000;
    }
    .yeptable {
        color: #006400;
        font-weight: bold;
    }
    .no{
       color: #FF0000;
       font-weight: bold;
    }

    </style>

</head>
<body>
<table>
<tbody></tbody>
</table>

<script>
(async function up() {
    const randomItem = arr => arr[Math.trunc(arr.length * Math.random())];
    const randomNum = (min, max) => min + Math.trunc((max + 1 - min) * Math.random());
    const title = 'Квартира, Офис, Дом, Коммерция'.split(', ');
    const business = randomItem(title);
    const num = randomNum(300, 1000);
    const digit = num < 480 ? ' 000 000' : ' 000'
    const profit = num + digit;
    const percent = randomNum(7, 60);
    const resolution = '<span class="yeptable">Одобрено</span>, <span class="no">отказано</span>, на рассмотрении'.split(', ');
    const choice = randomItem(resolution);
    const time = randomNum(2, 60);
    //const response = await fetch("https://cors-anywhere.herokuapp.com/http://randomuser.ru/api.json");// эта строка только для примера
    //const resArr = await response.json();
    //    let {last, first} = resArr[0].user.name;
    const people = [{"first":"Георгий","last":"Емельянов"},{"first":"Елизавета","last":"Петрова"}, {"first":"Любовь","last":"Костина"}];
        let {last, first}  =  randomItem(people);
        let tr = `<tr><td></td>
        <td>${last} ${first}</td>
        <td>${business}</td>
        <td>${profit} руб.</td>
        <td>${percent}%</td>
        <td>${time} мес.</td>
        <td>${choice}</td>
        </tr>`
        const tbody = document.querySelector('table tbody');
    const size = 5, pause = 3000;
        if(tbody.rows.length == 5) tbody.rows[4].remove();
        tbody.insertAdjacentHTML('afterBegin', tr);
    const delay = tbody.rows.length < size ? 0 : pause;
        window.setTimeout(up, delay);
})();

    </script>
</body>
</html>

Последний раз редактировалось рони, 08.05.2020 в 17:22.
Ответить с цитированием
  #8 (permalink)  
Старый 08.05.2020, 15:02
Интересующийся
Отправить личное сообщение для CORONER Посмотреть профиль Найти все сообщения от CORONER
 
Регистрация: 27.02.2018
Сообщений: 20

рони,
Спасибо огромное!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор столбцов таблицы DDim1000 Элементы интерфейса 13 04.11.2019 23:05
Скрипт, форма, таблица. Обероныч Общие вопросы Javascript 9 28.10.2014 08:51
Таблица псевдографикой Vit (X)HTML/CSS 3 27.11.2012 07:03
JS и таблица pavel24071988 Общие вопросы Javascript 2 02.08.2011 15:40
jqgrid. таблица не отображается в Mozilla и Google Chrom skalka jQuery 0 19.07.2011 08:19