Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de saber qual a diferença entre usar ID e NAME em uma input. O que sei é que ID refere-se a apenas um elemento enquanto NAME refere-se a vários elementos com o mesmo nome. Ocorre que, quando uso o javascript para manipular algum dado da input, geralmente uso ID e quando passo dados para um $_GET[] do php tenho que usar NAME. Há alguma lógica nisso? /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/smile.gif&key=15294d64c22e9e9c4ae0bf82a62ec27d13f27d6ba7078a5f7982077798029364" alt="Imagem Postada" />
Caracas muito boa a explicação! Valeu :joia:
Boa explicação mesmo /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/biggrin.gif&key=cb0fdb2382312b39ddcb15831fcae62157015f17d2417528782628663387e929" alt="Imagem Postada" />
Resumindo, id serve pro javascript lidar com os elementos da página, um a um, enquanto name serve para "empacotar" os dados informados e enviá-los para uma outra página.
Imaginei que fosse isso, só queria tirar a dúvida mesmo /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/biggrin.gif&key=cb0fdb2382312b39ddcb15831fcae62157015f17d2417528782628663387e929" alt="Imagem Postada" />
Abraço.
Boa a explicação... mas eu queria saber o seguinte, se numa mesma input eu posso utilizar o atributo name e id.
A dúvida surge devido a um problema que ocorre com u formulario que estou desenvolvendo.
Numa tag input eu utilizo o atributo id para chamar uma mascara de entrada de telefone
só que eu preciso enviar esses dados para uma outra pagina php.
Se eu utilizar só id beleza a mascara funciona mas se eu colocar o atributo name nao vai :ermm:
Bom segue o código quem puder ajudar eu agradeço vlw!
********************************************
/script que gera a mascara:/
<script>
function mascara(o,f){
v_obj=o
v_fun=f
setTimeout("execmascara()",1)
}
function execmascara(){
v_obj.value=v_fun(v_obj.value)
}
function telefone(v){
v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca hífen entre o quarto e o quinto dígitos
return v
}
</script>
***************************
o input com os atributos name (necessario para o envio de dados) e a id para a mascara de entrada:
echo"<tr><td>Telefone<br><input name = 'tel'id='itelefone' onkeypress='mascara(this,telefone)' maxlength='14' /></td>";
Se eu uso só a id a mascara funciona :huh: , mas se eu colocar o name a mascara simplesmente nao funciona eu sou iniciante se puderem me ajudareu agradeço abraço! ;)
erro de sintaxe html, e de performance no php
faça assim:
echo '<tr><td>Telefone<br><input name="tel" id="itelefone" onkeypress="mascara(this,telefone);" maxlength="14" /></td>';
e ao contrário do que você pensou, essa máscara não precisa do id para funcionar.
VLw mesm agora eu entendi a id nao tem relação com a chamada da função ao contrario do q eu pensava... é isso mesm?
vlw ABRAÇO!
use o Responder Azul /applications/core/interface/imageproxy/imageproxy.php?img=http://img222.imageshack.us/img222/8498/respondery.png&key=db0a5d713bd1099ba19595f08a80f5881ed1a276406432195f83536896c761d5" alt="respondery.png" />ou a 'Resposta Rápida'.
exato.
Sim, há uma lógica nisso...
Bom, primeiro ponto: o id é utilizado para identificar cada elemento em uma página. É por meio dele que normalmente conseguimos aplicar a interação com JavaScript sem que todos os elementos sejam afetados, pois ele é único, e com isso o JS não irá se "confundir" em relação a qual elemento ele deve atuar. Se dois ou mais elementos tivessem um mesmo id, como ele saberia se é o elemento X ou o Y?
Já o name é utilizado nos campos de um formulário e ele é responsável justamente para enviar os dados informados para uma outra página, seja ela PHP, ou ASP, .Net, JSP, ColdFusion, etc. E diferentemente do que você disse, ele não é usado somente em casos em que vários inputs possuam o mesmo name. Cada input em um formulário pode ter um name específico, e isso inclusive é a situação mais comum.
Agora, quando vários elementos possuem um mesmo name? Imagine um cadastro para receber newsletters em um site de notícias, e nesse cadastro você deve indicar suas áreas de interesse. Observe que normalmente nesse tipo de recurso utiliza-se inputs do tipo checkbox, pois você pode marcar mais do que um. Nesse caso, ao submeter o formulário você enviará um array, concorda? Pois são valores diferentes para um mesmo name. O que mudará em cada checkbox será o id (se ele tiver um, pois id não é obrigatório) e o valor definido no value (esse sim é obrigatório no caso do checkbox). Sendo assim, você deverá tratar na sua página que irá receber os dados informados nesse formulário essa informação como um array, e para isso cada linguagem possui as funções adequadas.
Outra coisa, ainda com o exemplo dos checkboxes de área de interesse, imagine que se você quisesse aplicar algum recurso via JavaScript em cada checkbox ao ser clicado: se cada um deles não tiver um id, como o JavaScript saberá qual é o checkbox que foi clicado se ele se basear pelo name? /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/mellow.gif&key=356581a1bd5b39ccefe91ac9b9df56effa5e2b9f2417c09b2bf6bec26392e3d6" alt="Imagem Postada" /> Nessa situação então, aí sim é necessário que cada um tenha um id próprio e todos eles tenham o mesmo name...
Percebe a diferença entre um e outro? Se você não definir um name para seus campos, o browser não tem como "empacotar" os dados informados e enviá-los para uma outra página, não importando o método de envio (GET ou POST), e ele utiliza justamente o name dos campos para isso, e não o id...
Ah! Outra coisa, isso explica o motivo de o atributo name não poder ser mais aplicado às tags <form>, como antigamente, pois o que você envia não é o formulário, mas sim os dados que foram informados nos campos que estão dentro dele...
Espero que tenha esclarecido um pouco.
:joia: