WixCode - Обновление двух коллекций после отправки? - PullRequest
0 голосов
/ 08 октября 2018

Я занимаюсь разработкой сайта Wix и испытываю проблемы с вставкой / обновлением записей в две коллекции баз данных после нажатия кнопки «Отправить».Позвольте мне объяснить мою проблему: у меня есть динамическая страница «Профиль участника».На этой странице зарегистрированный пользователь может добавлять / изменять информацию о пользователе, загружать несколько изображений.Для информации о пользователях у меня есть база данных под названием «MemberInfo», для пользовательских изображений - база данных «MebmerImages».Последняя коллекция имеет поле ссылки "Id", которое соответствует полю "Id" в коллекциях "MebmerInfo".Отношение «один ко многим» - у одного пользователя может быть несколько изображений.Вот мои вопросы:

  1. Как я могу обновить данные в коллекции "MemberInfo" и вместе с этой записью вставки в "MemberImages" после нажатия кнопки "Отправить"?
  2. Чтоо том, когда пользователь заполняет форму впервые и одновременно загружает изображение?В этом случае я до сих пор не знаю идентификатор записи в коллекции MemberInfo.
  3. У меня другой вопрос - на той же странице я хочу показать все изображения текущего пользователя в элементе галереи,Если у пользователя нет изображения / изображений - ничего не должно отображаться.Если у пользователя есть изображения / с, они должны заполнить галерею.После того, как пользователь загрузит новое изображение и отправит его - галерея должна быть обновлена.Как я могу достичь этой функциональности?

У меня есть некоторый опыт бэк-энда с языком .NET, и я могу кодировать все это в C #, но я новичок в разработке веб-интерфейса и разработке Wix, в частности,Я знаю, что мне нужно использовать Javascript для достижения того, чего я хочу, и я много искал по своим вопросам, но, похоже, ничего не поделилось по этой конкретной теме.Это превратилось в замкнутый круг для меня.Поэтому я буду очень признателен, если кто-нибудь сможет мне помочь или объяснить, что мне делать.

С наилучшими пожеланиями!

Ивайло

ОБНОВЛЕНИЕ

После того, что Сэм предложил, я попытался написать код, чтобы увидеть, еслиЯ правильно понял, как работает код wix (javascript).

Итак, это моя динамическая страница «Пользователи (ID)» enter image description here

А вот код:

import wixUsers from 'wix-users';
import wixData from 'wix-data';
import wixlocation from 'wix-location';// For full API documentation, including code examples, visit http://wix.to/94BuAAs

$w.onReady(function () {
    $w('#button3').onClick(function () { //#button3 is SUBMIT button ID
        let username = $w('#username').value;
        let email = $w('#email').value;
        let age = $w('#age').value;
        let eyecolor = $w('#eyecolor').value;
        let height = $w('#height').value;
        let weight = $w('#weight').value;
        let otherinfo = $w('#otherinfo').value;

        let userInfo = {
            "username": username,
            "email": email,
            "age": age,
            "eyeColor": eyecolor,
            "height": height,
            "weight": weight,
            "additionalInformation": otherinfo,
            };

    wixData.save("Users", userInfo)
        .then( (results) => {
            let userItem = results; 

            if($w("#uploadButton2").value.length > 0) {
                let image = $w("#uploadButton2").value;
                let userImage = {
                    "image": image,
                    "userId": userItem['_id'],
                };
                wixData.insert("UserImages", userImage)
                .then(() =>{
                    wixlocation.to('/Users/${wixUsers.currentUser.id}')
                })
            }
                } )
        .catch( (err) => {
            let errorMsg = err;
        } );


    })
});

Ноэтот код не работаетНичего не вставлено / обновлено в коллекции базы данных!

1 Ответ

0 голосов
/ 09 октября 2018

Для этого есть несколько способов.

Если ваша кнопка отправки подключена к набору данных, вы можете использовать событие onAfterSave () API wix-dataset.После сохранения элемента MemberInfo вы можете использовать API wix-data для выполнения insert () с идентификатором из элемента MemberInfo.

Или вы можете использовать wix-данныеAPI для сохранения и вставки.

...