Jump to content

Recommended Posts

Posted (edited)

Здравствуйте.
Есть база данных: username/password/fname/surname/birthday в 'accounts'

Решил сделать паспорт команда: /passport

Паспорт открывается в package-client файл passport/index.html 

там есть строка:  Имя персонажа: <input type="text" readonly class="form-control-plaintext" id="passportName"

Вопрос: Как вывести данные с базы данных, а точнее fname с 'accounts' в html файл. 

Знаю что фигурирует код: document.getElementById('passportName').value = Имя персонажа. 

Объясните пожалуйста как с сервера передать данные fname с accounts желательно код на сервере и код на клиенте.


Заранее спасибо!

p.s. Делаю все через Node.js 

 

 

 

Edited by hatshepsut
Posted (edited)

Привет!

Client-side, HTML

<script>
//Создаем функцию, которая будет изменять элементы пасспорта и показывать там нужные нам значения.
function updateData(fname, surname, birthday) {
 //Получаем элементы DOM для частей пасспорта
  let name = document.getElementById("passportName")
  /*Тоже самое для дня рождения и всего остального, если надо
Далее, для <textbox> и <input> используем node.value, чтобы задать значение внутри, если же ты используешь абзац или блок для отображения текста, то используем node.innerHTML
 innerHTML - содержание HTML элемента, value - значение в input или textbox
*/
//Для твоего случая
  name.value = fname + " " + surname // Ставим в textbox имя + фамилия, с пробелом.
  }
</script>

Client-side 

// Добавляем событие для получение информации о паспорте и отображения его
mp.events.add("showPassport", (fname, surname, birthday)=> {
let passportBrowser = mp.browsers.new(/*Создашь здесь браузер*/)
//Как только браузер загрузится, вызываем функцию, которая выставляет наши данные в HTML.
mp.events.add('browserDomReady', (browser) => {
if(browser === passportBrowser) {
 browser.execute(`updateData(${fname},${surname}, ${birthday} )`) // Эта строка вызывает JavaScript код в браузере.
}
});
})

Server-side

//Добавляем команду
mp.events.addCommand("passport", (player)=> {
/*
Здесь пилишь запрос в MySQL и записываешь в переменную fname имя, surname фамилию, в birthday - день рождения
*/
 //Вызываем наше событие на клиенте и передаем ему значения из БД.
  player.call("showPassport", [fname, surname, birthday])
})

 

Edited by Hanvod
Posted (edited)
1 час назад, Hanvod сказал:

Привет!

Client-side, HTML


<script>
//Создаем функцию, которая будет изменять элементы пасспорта и показывать там нужные нам значения.
function updateData(fname, surname, birthday) {
 //Получаем элементы DOM для частей пасспорта
  let name = document.getElementById("passportName")
  /*Тоже самое для дня рождения и всего остального, если надо
Далее, для <textbox> и <input> используем node.value, чтобы задать значение внутри, если же ты используешь абзац или блок для отображения текста, то используем node.innerHTML
 innerHTML - содержание HTML элемента, value - значение в input или textbox
*/
//Для твоего случая
  name.value = fname + " " + surname // Ставим в textbox имя + фамилия, с пробелом.
  }
</script>

Client-side 


// Добавляем событие для получение информации о паспорте и отображения его
mp.events.add("showPassport", (fname, surname, birthday)=> {
let passportBrowser = mp.browsers.new(/*Создашь здесь браузер*/)
//Как только браузер загрузится, вызываем функцию, которая выставляет наши данные в HTML.
mp.events.add('browserDomReady', (browser) => {
if(browser === passportBrowser) {
 browser.execute(`updateData(${fname},${surname}, ${birthday} )`) // Эта строка вызывает JavaScript код в браузере.
}
});
})

Server-side


//Добавляем команду
mp.events.addCommand("passport", (player)=> {
/*
Здесь пилишь запрос в MySQL и записываешь в переменную fname имя, surname фамилию, в birthday - день рождения
*/
 //Вызываем наше событие на клиенте и передаем ему значения из БД.
  player.call("showPassport", [fname, surname, birthday])
})

 

 

Привет! Вот у меня что получилось, паспорт не открывается. 
Команда на сервере: 

mp.events.addCommand("pass", (player, fname, surname, birthday)=> {
        gm.mysql.handle.query('SELECT fname, surname, birthday FROM `accounts` WHERE `username` = ?', [fname, surname, birthday, player.name]);
        player.call("showPassport", [fname, surname, birthday]);

});

Вот то что в клиенте:

mp.events.add("showPassport", (fname, surname, birthday)=> {
    let passportBrowser = mp.browsers.new('package://passport/index.html');
    mp.gui.cursor.show(true, true);
    mp.events.add('browserDomReady', (browser) => {
        if(browser === passportBrowser) {
            browser.execute(`updateData(${fname},${surname}, ${birthday} )`) 
        }
    });
});

Не открывается паспорт и ничего не происходит.

Edited by hatshepsut

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...