Как динамически загружать новую страницу из динамически загружаемого html?

#javascript #node.js #ajax #fetch #client-server

#javascript #node.js #ajax #выборка #клиент-сервер

Вопрос:

В настоящее время у меня проблема, когда у меня есть страница с изображениями на моей веб-странице, которая динамически загружает изображения, которые пользователь может загрузить. На каждой карточке с картинками есть кнопка, по которой можно щелкнуть, чтобы отобразить новую страницу, содержащую комментарии к этой конкретной картинке. Информация о комментариях и изображениях хранится на сервере в виде массива. Я не уверен, как заставить кнопку на каждой карточке с изображением генерировать новую страницу без кодирования новой HTML-страницы в качестве одностраничного приложения. Кроме того, как бы мне передать значение заголовка рисунка на новую страницу, чтобы я мог фильтровать комментарии, включающие только те, которые относятся к конкретному изображению?У меня уже есть запросы get и post, которые возвращают все фотографии и комментарии с сервера. server.js

 function loadpics() {
    document.getElementById('insertpics').innerHTML='' 
    fetch ('http://127.0.0.1:8090/pics',{
        method: 'GET',
        headers: {
            "Content-Type":"application/json"
        }
     })
    .then((res) => { return res.json(); })
    .then(pics => {
        for (let pic of pics){
            const y= `
            <div class="card" style="width: 18rem;">
            <img class="card-img-top" src=${pic.picurl} alt="Card image cap">
            <div class="card-body">
              <h5 class="card-title">${pic.username}</h5>
              <p class="card-text">${pic.nameofpic}</p>
            <a  class="btn btn-info" href="#" >View Comments on this picture</a>
            </div>
          </div>
            `;

            document.getElementById('insertpics').innerHTML =y;
        }
    })
};
loadpics();


 

Как вы можете видеть, у меня есть кнопка в конце карточки, но я понятия не имею, как заставить ее генерировать пустую страницу только с комментариями, связанными с этой фотографией. Массив изображений имеет такую структуру [{«username»:»username»,»picname»:»nameofpic», «pic»:»pic.png»}], а массив комментариев имеет такую структуру [{«username»: «username», «picname»:»nameofpic»,»комментарий»:»комментарий»}]. Любая помощь будет с благодарностью! редактировать: кто-нибудь, пожалуйста, помогите.

Ответ №1:

Создайте новую страницу только из одного изображения и комментариев. Добавьте URL-адрес в тег «a». например http://127.0.0.1:8090/viewPic /{идентификатор}

Комментарии:

1. не могли бы вы как-нибудь объяснить, как я буду это делать, или предоставить более подробную информацию? Извините, я новичок в js и серверах

2. Как бы я создал страницу, одновременно убедившись, что у меня одностраничный стиль приложения, и как бы я заполнил страницу конкретными комментариями с помощью выборки?

3. Приведенный выше ответ не был предназначен для одностраничного приложения. Для SPA используйте JavaScript и CSS для изменения стиля карточек. Например: у вас может быть «активный» класс CSS, который изменяет свойства CSS-карты, чтобы охватить экран воли и т. Д., Затем с помощью js добавьте и удалите класс CSS для выбранного элемента.

4. есть ли шанс, что вы могли бы показать мне пример того, как я буду загружать этот css и js при нажатии кнопки? Извините, я все еще очень смущен.