Criando objetos JSON a partir de dados de formulário HTML
No domínio do desenvolvimento web, transmitir dados perfeitamente para os servidores é crucial. Ao lidar com formulários HTML, pode-se encontrar a necessidade de transmitir dados no formato JSON. Este artigo investiga a abordagem ideal para conseguir isso sem encontrar obstáculos.
Considere o seguinte formulário HTML como exemplo:
Nosso objetivo é transformar os dados deste formulário em um objeto JSON e transmiti-los ao servidor após o envio do formulário.
Inicialmente, você pode ter tentado uma solução usando o seguinte código:
function submitform(){
var xhr = new XMLHttpRequest();
xhr.open(form.method, form.action, true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
var j = {
"first_name":"binchen",
"last_name":"heris",
};
xhr.send(JSON.stringify(j));
}
No entanto, esta abordagem é insuficiente devido a uma falha crucial. Em vez de recuperar os dados do formulário, você criou manualmente um objeto JSON de amostra. Para corrigir isso, precisamos coletar os dados do formulário dinamicamente.
A solução está em aproveitar o poder do jQuery para extrair os dados do formulário como uma matriz, que podemos então converter em uma string JSON:
var formData = JSON.stringify($("myForm").serializeArray());
Esta linha de código captura efetivamente todos os dados do formulário e os converte no formato JSON desejado. Você pode então utilizar essa string JSON em sua solicitação AJAX ou, se AJAX não for uma opção, incorporá-la em uma área de texto oculta e enviar o formulário tradicionalmente.
Além disso, se você estiver transmitindo os dados como uma string JSON por meio de um formulário HTML padrão, lembre-se de que ele precisa ser decodificado no lado do servidor para acessar os pontos de dados individuais em um formato de array.
Ao seguir esta abordagem, você pode enviar objetos JSON sem esforço a partir de seus formulários HTML, garantindo transmissão de dados perfeita e comunicação eficiente com o servidor.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3