2011-11-28 6 views
2

나는 serialize() should generate 틱 이후jQuery로 여러 확인란 값을 직렬화하는 방법은 무엇입니까?

<input type="checkbox" name="tick" value="'.$value.'" /> 

여러 체크 박스에 대한

$("#searchForm").submit(function(event) { 
    event.preventDefault(); 
    var $form = $(this), 
     term = $("input[name^=tick]:checked").serialize(), 
     url = $form.attr('action'); 
    $.post(url, { ticks: term, id: '55' }, 
     function(data) { 
      $("#result").empty().append(data); 
     } 
    ); 
    }); 
val() 단일 체크 박스를 작동

하지만 같은 jQuery.post의 간단한 예제를 수정 : 용어 to be used as 용어 in $ .post`.

은 어떻게 serialize()$.post

참고 적절한 데이터를 생성 할 수 있습니다 : 내가 전체 양식을 직렬화 할 만 체크 박스의 입력 값을 확인하지 않습니다.

답변

4

당신은 .serializeArray() 참조 사용할 수 있습니다 http://api.jquery.com/serializeArray/

+0

serializeArray()를 시도했지만 배열 배열을 만듭니다. – Googlebot

+1

배열에 값을 저장하고 serialize 할 수 있습니다. – punit

+0

감사합니다 - 매우 유용했습니다! – afield

4

간단한 값 컬렉터 : HTML

<input type="checkbox" class="selector" value="{value}"/> 

JS를

var checked=''; 
      $('.selector:checked').each(function(){ 
       checked=checked+','+$(this).val(); 
      }); 

PHP

$ids=explode(',',substr($_GET['param_with_checked_values'],1)); 
0
term = $("#input[name^=tick]:checked").map(function() { 
    return this.value; 
}).get(); 
term.join(); 
1

name="tick"name="tick[]"에서 변경하고 $(this).serialize();을 사용하여 모든 체크 된 값을 게시 할 수 있습니다.

0

당신은 여전히 ​​.serializeArray을 사용하고이 같은 .post()에서 사용할 수 있습니다 :

var postData = {}; 
var form = $('#formId').serializeArray(); 
for (var i = 0; i < form.length; i++) { 
    if (form[i]['name'].endsWith('[]')) { 
     var name = form[i]['name']; 
     name = name.substring(0, name.length - 2); 
     if (!(name in postData)) { 
      postData[name] = []; 
     } 
     postData[name].push(form[i]['value']); 
    } else { 
     postData[form[i]['name']] = form[i]['value']; 
    } 
} 

$.post('/endpoint', postData, function(response) { 

}, 'json'); 

postData가 장애인을 제외한 모든 폼 요소가 포함됩니다. 모든 체크 박스 값은 일반적인 폼 제출을 할 때처럼 배열로 전달됩니다.

관련 문제