Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sNniffer

Salvar Radio BD

Recommended Posts

Preciso salvar o value de um radio, no grupo de radios tenho:

 <li style="margin-bottom:10px">
  <input tabindex="1" type="radio" value="1" id="id_tipo" name="id_tipo" >
  <label for="-1">teste1</label>
</li>
<li style="margin-bottom:10px">
  <input tabindex="2" type="radio"  value="2" id="id_tipo" name="id_tipo">
  <label for="-2">teste2</label>
</li>
<li style="margin-bottom:10px">
  <input tabindex="3" type="radio"  value="3" id="id_tipo" name="id_tipo">
  <label for="-1">teste3</label>
</li>

No button para salvar tenho:

<button type="button" onclick="return valida()" class="btn btn-primary pull-left">Incluir</button>

A função valida é:

function valida() {
var x=document.getElementsByTagName("input");
var i=0;
var c=new Array();
a=0;
for (i=0;i<=x.length-1;i++) {
if (x[i].type=="radio" && x[i].id=="id_tipo") {
c[a] = x[i];
a++;
}
}
i=0;
var checked = false;
for (i=0;i<=c.length-1;i++) {
if (c[i].checked==true) {
checked = true;
break;
}
}
if (!checked) {
alert("Escolha pelo menos um tipo");
return false;
}else
{
  add_member();
}
}

e a função 'add_member', captura os dados enviados.

function add_member() {
	var url = 'lib/action/add_member.php';
	var method = 'POST';
	var params = 'nome='+document.getElementById('nome').value; //Outro campo usado
	params += '&id_tipo='+document.getElementById('id_tipo').value;
	var container_id = 'list_container' ;
	var loading_text = '<img src="images/ajax_loader.gif">' ;
	ajax (url, method, params, container_id, loading_text) ;
}

Beleza, o problema que ocorre é, os outros campos são salvos de maneira correta, mas, o 'id_tipo' só armazena no banco o valor '1', ou seja, apenas do primeiro radio. Se alterar o value do primeiro radio para qualquer outra coisa é armazenado. Preciso que armazene o value apenas do radio selecionado.

 

Vlw

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
	params += '&id_tipo='+document.getElementById('id_tipo').value;

O atributo ID deve ser unico em todo o HTML. Fazendo dessa forma, ele só vai pegar o primeiro mesmo. Você precisa buscar por name.

 

Tente fazer adicionar isto no inicio de add_member()

var radios = document.getElementsByName("id_tipo");
var radioValue=0;
for (i = 0; i < radios.length; i++) {
  if (radios[i].type == "radio" && radios[i].checked)
    radioValue = radios[i].value
}

E troque a linha que citei por

params += '&id_tipo='+radioValue;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na medida, muito obrigado Rafael. Vlw

 

Não esqueça de trocar os ids dos radios... id=id_tipo1, id=id_tipo2,..etc já é suficiente :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.