2015-01-20 3 views
0

양식에서 정보를 가져 와서이를 mysql에 전달하려고합니다. 내 방법은 다음과 같습니다jquery를 사용하여 양식에서 데이터 검색

var form = []; 

$("input").each(function(){ 
var id = $(this).attr("name"); 
var value = $(this).val(); 
alert(id); 

var item = {}; 
item ["name"] = id; 
item ["value"] = value; 

form.push(item);   
}); 

return JSON.stringify(form); 

문제는 라디오 버튼에서 선택 및 확인되지 않은 값을 가져 오려고 할 때입니다. 나는이 같은 MySQL의 출력에 전달하려는 쿼리 문자열 :

insert into contatos (nome, rua, sexo, sexo, ncasa, civil, civil, civil, bairro, aniversario, cidade, rg, cpf, usuario, telefone, senha, email, confirmasenha) values ('', '', 'M', 'F', '', 'S', 'C', 'D', '', '', '', '', '', '', '', '', '', '')

필드는 "SEXO"와 "시민"반복된다. 라디오 버튼을 한 번만 읽도록 입력을 만들려면 어떻게해야합니까?

답변

1

당신이 각 텍스트 필드를 반복하고 3 개의 라디오 버튼을 가지고 있다면 3 개의 값을 배열로 푸시합니다. 그래서 나는 라디오 필드 sexo와 시민의 바깥 루프를 취했습니다. 그래서 1 번만 푸시됩니다. 되풀이된다. 당신이 jQuery를 양식 요소에 serializeArray를 호출 할 경우

$("input").each(function(){ 



if(id!='sexo' || id!='civil'){ 

    var id = $(this).attr("name"); 
    var value = $(this).val(); 

    var item = {}; 
    item ["name"] = id; 
    item ["value"] = value; 

    form.push(item); 

} 


}); 

var value1 =$('input:radio[name=sexo]:checked').val(); 
var value2 =$('input:radio[name=civil]:checked').val(); 

    var item = {}; 
    item ["name"] = "sexo"; 
    item ["value"] = value1; 

    form.push(item); 

    var item = {}; 
    item ["name"] = "civil"; 
    item ["value"] = value2; 

    form.push(item); 


return JSON.stringify(form); 
+0

이 작동하지만 문제가 해결되지 않습니다. 나는 "sexo"와 "civil"필드가 반복되지 않는 방법을 찾고 싶다. –

+0

나는 각 텍스트 필드를 반복하고 있기 때문에 3 개의 라디오 버튼을 가지고 있다면 배열에 3 개의 값을 넣을 수 있다고 생각한다. 위의 대답은 내가 2 라디오 필드 sexo과 시민의 외부 루프를했다 그래서 그것은 단지 1 시간을 반복하지 않을 것입니다 – silentprogrammer

+0

그것은 효과가 있어요! 고맙습니다 –

0

당신은 당신이 만드는 것과 유사한 객체의 배열을 얻을 것이다, 중복 방지 할 수 있습니다 :

$('form').serializeArray(); 

가 반환합니다

[ 
    { 
    name: "firstfield", 
    value: "1" 
    }, 
    { 
    name: "secondfield", 
    value: "2" 
    } 
] 
관련 문제