Как правильно отобразить данные для всех пользователей после выполнения ajax запроса?

  • 27 августа 2023 г. 12:36
Ответы на вопрос 2
Проблема возникает, потому что вы заменяете содержимое списка ul на новое имя при каждом успешном выполнении ajax запроса. Для того чтобы отображать все полученные имена, нужно не заменять содержимое списка, а добавлять новое имя к уже существующим записям. 

Вот пример, как можно это сделать:

1. HTML разметка:

```html
<ul id="user-list">
    <!-- Список имен будет добавляться сюда -->
</ul>
```

2. JavaScript код:

```javascript
// Делаем ajax запрос
$.ajax({
    url: "get_username.php", // URL вашего PHP скрипта
    type: "POST",
    dataType: "json",
    success: function(response) {
        // Получаем имя пользователя из ответа
        var username = response.username;

        // Создаем элемент списка li с полученным именем
        var listItem = $("<li>").text(username);

        // Добавляем элемент списка в список ul
        $("#user-list").append(listItem);
    },
    error: function(xhr, status, error) {
        // Обработка ошибок
        console.log(error);
    }
});
```

Код PHP скрипта (get_username.php) должен возвращать данные в формате JSON, например:

```php
<?php
// Получаем имя пользователя, каким-то образом
$username = "John";

// Возвращаем имя пользователя в формате JSON
echo json_encode(array("username" => $username));
?>
```

Таким образом, при каждом успешном выполнении ajax запроса, полученное имя пользователя будет добавляться к уже имеющимся записям списка ul.
Если я правильно понял, вам нужно создать чат, где можно видеть список пользователей, которые находятся на странице. Для решения этой задачи лучше использовать веб-сокеты. 

Вот как это можно сделать:
1. При заходе пользователя на страницу, он автоматически добавляется в список активных пользователей.
2. С помощью веб-сокетов, можно передавать информацию о новом пользователе всем остальным пользователям в реальном времени.
3. При обновлении страницы или просто запросе на сервер каждые несколько секунд, список активных пользователей обновляется только для тех, кто был добавлен не более трех минут назад.

Этот подход позволяет создать динамический список пользователей, без необходимости постоянно отправлять запросы на сервер и перегружать ресурсы.
Похожие вопросы