Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia! Estou com o seguinte problema, tenho uma serie de elementos spans em um formulário que utiliza o método POST para envio, estes spans armazenam os valores de alguns cálculos, porém no elemento span não pode ter o atributo name, mas é através do name que PHP pega o valor. Alguém já passou por algo parecido, tem uma dica ou sabe como resolver isto??
Hummm, com o input acho que vai ficar muito feio. Acho que da para pegar os valores desses spans com o JavaScript e envia para o PHP com o Ajax né?
Use o campo oculto:
<input name="" type="hidden" value="" />
Isso seria gambiarra.
Eu faria com inputs e estilizaria com css, no final o efeito visual será o mesmo.
E se quiser evitar que o usuário digite nesses campos, basta utilizar o atributo readonly
Eu tenho uma ótima solução para este caso, fica elegante teu código e resolverá muitos outros problemas.
É possível você determinar um atributo de qualquer elemento utilizando data-"descricao", por exemplo:
//Código HTML
<div id="estatistica">
<p data-minimo ="2.1"> 2.1</p>
<p data-media= "5.3"> 5.3 </p>
<p data-maximo=8.7> 8.7 </p>
</div>
//Você também poderá criar quantos achar necessário.
<div id="historio">
<p data-total ="44.5" data-data="01/03/2014"> Jão</p>
<p data-total= "35.7" data-data="04/02/2014"> Maria </p>
<p data-total= "67.1" data-data="16/02/2014"> Pedrinho </p>
</div>
Agora no javascript
$("#historio p").click(function(e){
var total = $(this).data("data");
//OU no javascript puro
var total = this.dataset.total; // Prefiro o javascript puro
var data = this.dataset.data;
alert(this.innerHTML+" no dia "+data+ " obteve "+total+" pts.");
});
Armazenando isso em variável, fica muito fácil de enviar via ajax.
Não entendi o porquê de usar campos do tipo hidden seria uma gambiarra. Se você precisa enviar elementos da qual o usuário não precisa conhecer ou ver, é pra isto mesmo que ele serve. A não ser que os campos ou spans forem expostos de qualquer forma, aí estilizar com o CSS seria mais viável mesmo, além de mais fácil de fazer e mais rápido de renderizar do que o JavaScript.
Oi @Jonaslhp, eu quis dizer que seria gambiarra enviar com ajax os spans.
Os hiddens são sim uma boa solução, mas no caso do criador do tópico, os valores precisam ficar expostos, então como vc mesmo disse, o input estilizado é a melhor solução.
>
Oi @Jonaslhp, eu quis dizer que seria gambiarra enviar com ajax os spans.
Os hiddens são sim uma boa solução, mas no caso do criador do tópico, os valores precisam ficar expostos, então como vc mesmo disse, o input estilizado é a melhor solução.
Entendi @William Bruno, reli os posts e penso da mesma maneira que você.
Abs
Muito obrigado! A ideia de usar um input hidden seria muito boa, mas o problema é que os cálculos precisam ficar visíveis.
Vou usar um input normal mesmo e depois melhorar ele com CSS.
E mais uma vez, muito obrigado pelas dicas!
Caso tenha problemas com o css, você pode usar o input hidden sem problemas, nada impede de usar o span e o hidden juntos.
Abraço
Na verdade, o post só lê o que os elementos input, select e textarea enviam.
Não é o "name" que faz a diferença, mas sim a tag em si. Use um input.