Как создать внешне доступную переменную? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь изучить основы огня. Но у меня есть проблема. У меня есть поле выбора, и я хочу взять значение в нем и отправить его в базу данных. Но я попытался создать для него внешнюю переменную и не смог. Я знал, что не смогу сделать это из-за концепций Scope. Можете ли вы провести меня через это? Спасибо за ваш совет. ** Я упомянул, что я хотел, где в строках комментария.

Это моя html структура selectbox:

<select id="message-from" class="form-control">
  <option selected >Kullanıcı Seçiniz </option>
  <option value="user1">User1</option>
  <option value="user2">User2</option>
</select>

Это мой Javascript Код:

//* Select Elements
const logoutButton = document.getElementById("logout-button");
const addMessageButton = document.getElementById("add-message"); 
const message = document.getElementById("message");
const messageFrom = document.getElementById("message-from");
const date = document.getElementById("date");
let currentUser = "";


let user = "";
messageFrom.addEventListener("change", () => {
    user = messageFrom.options[messageFrom.selectedIndex].value;
})
console.log(user);  **** // Naturally I can't view this here ****


firebase.auth().onAuthStateChanged((user) => { 
    if (user) { 
        currentUser = user.uid; 

        logoutButton.addEventListener("click", () => {
            firebase.auth().signOut()
            .then(() => {
                window.location.href = "login.html"
            })
        })

        addMessageButton.addEventListener("click", e => {
            e.preventDefault()
            firebase.database().ref().child("users").child(currentUser).child("messages").push({
                messages: message.value,
                date: date.value,
                messageFrom: user,  **** // Actually I want SelectBox value to come here ****
            })
        })
    }
})
...