hatshepsut Posted August 28, 2018 Posted August 28, 2018 (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 August 28, 2018 by hatshepsut
Hanvod Posted August 29, 2018 Posted August 29, 2018 (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 August 29, 2018 by Hanvod
hatshepsut Posted August 29, 2018 Author Posted August 29, 2018 (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 August 29, 2018 by hatshepsut
hatshepsut Posted August 29, 2018 Author Posted August 29, 2018 2 минуты назад, Hanvod сказал: Можно все твои файлы? Вместе с index.html Может в Skype: (ilfat.ahmet) и я покажу, тут не удобно или ВК: https://vk.com/dumai_o_sebe
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now