XRS Posted September 14, 2018 at 04:35 PM Report #611848 Posted September 14, 2018 at 04:35 PM Boa tarde, Estou com uma dificuldade que espero que me possam ajudar. Tenho um formulário que é gerado por PHP e cria um input para cada um dos idiomas disponíveis na base de dados, ou seja, se eu tiver 2 idiomas (Português, Inglês), ele cria 2 inputs, um com text[pt] e outro com text[en]. Se eu tiver três idiomas (Português, Inglês, Espanhol), ele já me vai criar 3 inputs baseados no mesmo sistema. O meu problema, passa por conseguir adicionar mais inputs através de Javascript, tantos quantos idiomas existem na base de dados. Ou seja, preciso de conseguir que quando carrego no botão em Javascript, ele vá à base de dados e me gere mais X campos (X é a quantidade de idiomas na base de dados) e os adicione ao formulário. Não estou a conseguir tomar este procedimento nem sequer perceber com o poderei fazer, logo não tenho código para o efeito. Será que alguém me consegue ajudar nesta situação? Obrigado.
Rechousa Posted September 14, 2018 at 10:20 PM Report #611854 Posted September 14, 2018 at 10:20 PM Viva, Se pretendes adicionar dinamicamente inputs via javascript, precisas de usar document.createElement(). Vê mais documentação no MDN, aqui. Exemplo: var input = document.createElement("input"); input.type = "text"; input.className = "css-class-name"; // set the CSS class input.value = "pt"; container.appendChild(input); // put it into the DOM Espero ter ajudado, Pedro Martins Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
XRS Posted September 14, 2018 at 11:31 PM Author Report #611855 Posted September 14, 2018 at 11:31 PM Viva @Rechousa Essa parte eu consigo fazer tranquilamente. O meu problema é que ele tem que adicionar tantos inputs quantos idiomas existam na base de dados, ou seja, tenho que ir a base de dados buscar quantos inputs(idioma e imagem) deve criar esse numero de inputs. Isso é que me está a fazer confusão.
Rechousa Posted September 14, 2018 at 11:38 PM Report #611856 Posted September 14, 2018 at 11:38 PM Pelo que percebi, precisas mandar para o HTML, via PHP, as linguagens que queres mostrar. Coloquei aqui um exemplo do output que deverá ser produzido: function renderLanguage(language) { var input = document.createElement("input"); input.type = "text"; input.className = "css-class-name"; // set the CSS class input.value = "pt"; container.appendChild(input); // put it into the DOM } function renderAllLanguages() { var languages = ['pt', 'en', 'fr', 'es', 'ru']; for(var i=0;i<language.length;i++) { const language = languages[i]; console.log('Rendeing language ' + language); renderLanguage(language); } } renderAllLanguages(); No PHP terás de aceder à base de dados e produzir o array com as linguages, por exemplo, no formato que coloquei acima. Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
XRS Posted September 14, 2018 at 11:53 PM Author Report #611857 Posted September 14, 2018 at 11:53 PM Obrigado pela ajuda. Vou tentar a ver se consigo trabalhar dessa forma. Então se bem percebi, faço um ajax call, e faço o encode da resposta que quero em json (neste caso vai ter que ser mais do que uma array. Depois uso a informação da array para criar os inputs. Parece-me bem 🙂
Rechousa Posted September 15, 2018 at 12:22 AM Report #611858 Posted September 15, 2018 at 12:22 AM (edited) Olá, Ou renderizas logo no HTML ou fazes a chamada ajax que, pode até retornar logo um array com as languages que queres. Boa sorte, qq coisa avisa. Edited September 15, 2018 at 12:23 AM by Rechousa Formatting Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
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