Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Como passar um json no value=""

como poderia passar um json no value, pois queria poder acessar mais do que a propriedade id do objeto.

5 respostas

Oi Felipe, tudo bem ?

Pode dar um exemplo do que você quer ?

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form action="/promocoes" method="post">
              <div>
                  <input type="text" name="mensagem"/>
              </div>
              <div>
                  <select name="livro[id]">
                      <% for(var i=0; i<lista.length; i++) {%>
                          <option value="<%=lista[i]%>" ><%=lista[i].titulo%></option>
                      <% } %>
                  </select>
              </div>
              <input type="submit" value="Promoção relâmpago"/>

      </form>

  </body>
</html>

<option value="<%=lista[i]%>" >

queria passar o livro através da tag value, para que seja possível reutiliza-lo nas informações do alert que será impresso pelo socketIO.

Felipe,

Infelizmente para esse caso não é possível passar um objeto para dentro desse cara, o que você pode fazer é passar um texto que fique dentro dessa opção.

Texto

Que talvez possa ficar mais dinamico, mas não sei se isso vai te ajudar :(

Como eu poderia fazer pra passar mais do que uma informação para o servidor ? Por exemplo, se eu tivesse um chat onde eu tivesse que enviar ao servidor a mensagem que o usuário escreveu e o nome dele.

solução!

Fala ai Felipe, nesse seu último exemplo você teria que ter dois inputs dentro do formulário, um para o nome e outro para a mensagem.

Complementando: Sempre que um formulário é submetido, o valor de todos os inputs, selects ou textarea são enviados para o servidor na requisição.

Sendo assim você teria algo parecido com:

<form action="..." method="post">
    <label for="nome">Nome</label>
    <input id="nome" name="nome" type="text">
    <label for="mensagem">Mensagem</label>
    <textarea id="mensagem" nome="mensagem"></textarea>
</form>

Espero ter ajudado