2014-03-14 2 views
1

I 4 스킬 입력과 같은 HTML을 갖는 형태로 가지고: 아약스 POST를 통해 [] sikll

<input type="text" id="skill1" name="skill[]" value=""> 
<input type="text" id="skill2" name="skill[]" value=""> 
<input type="text" id="skill3" name="skill[]" value=""> 
<input type="text" id="skill4" name="skill[]" value=""> 

내가 좋아 컨트롤러이 받아야 :

개체 인 search_param에 제한 속성을 추가해야하기 때문에 serialize하지 않고 서버에 전달되는 스킬 이름을 얻는 방법이 있습니까? 기본적으로 search_param.data의 모든 게시물 데이터와 search_param.limit의 내 제한을 원합니다.

스킬 -> 배열 ('0'=> 'php', '1'=> java ','2 '=>'html ') (기본적으로 컨트롤러의 배열로)

이전에 양식 제출시 데이터를 제출했습니다. 이제 저는 이것을 Ajax에게하고 있습니다. 직렬화() Ajax를 통해 서버 컨트롤러에 데이터를 전송할 시도했다. 하지만 문제는 매개 변수로 제한을 받아들이는 paginate 함수를 사용하고 있다는 것입니다 (예 : param.limit, param은 Object 임). (코드 아래의 코드는 chk입니다.) 아약스 paginate 함수에 데이터와 제한을 모두 전달해야합니다.

게시 데이터와 제한 매김 기능을 모두 전달해야합니다.

function getUsers() { 
     var search_param = {'data':jQuery('#candidateForm').serialize()}; 
     jQuery.ajax({ 
      type: "POST", 
      dataType:'JSON', 
      url: jQuery('#site').val() + "search/ajax_search", 
      data: search_param, 
      cache: false, 
      success: function(data) { 
       if (data) { 
       //something 
}else{ 
        //else something 
       } 
       search_param.limit = 14; //this is desired way but as serialized it wont work 
       paginate_4a(jQuery('#site').val()+'search/ajax_search', 'srchResultCnt', search_param, {'fn':'fn_name', 'index':0}); 

      } 

     }); 
    } 

는이 시도하지만 실패 :

var skill = jQuery('input[name="skill[]"]').map(function(){return jQuery(this).val();}); 
    var skill_hid = jQuery('input[name="skill_hid[]"]').map(function(){return jQuery(this).val();}); 
    var experience = jQuery('input[name="experience[]"]').map(function(){return jQuery(this).val();}); 
    var search_param = { 
     'skill':skill, 
     'skill_hid':skill_hid, 
     'experience':experience 
    }; 

catch되지 않은 형식 오류 던지는 : 어떤 도움에 감사드립니다 불법 호출 을 아래

는 코드입니다.

해결책 :

마지막에

사용의 get()과 NISAM 이제 점점 서버 측에서 배열 ... 감사합니다 ....

$ ('입력 [이름 = "기술 []"] ') .map (function() {return $ (this) .val();}). get();

답변

5

데이터 PARAM는

var search_array = $('input[name="skill[]"]').map(function(){return $(this).val();}).get(); 

가변 search_array 모든 입력 값을 포함

data: {searchaparams:search_param,page:1} 

이 원하는 배열로 입력 값을 얻을 수 있어야한다. 당신은 등

+0

안녕 NISAM의 답장을 보내 주셔서 감사하지만, 얻을 수있는 방법이있다 스킬 이름은 객체 인 search_param에 제한 속성을 추가해야하므로 직렬화하지 않고 서버에 전달됩니다. 기본적으로 search_param.data에있는 모든 게시물 데이터와 search_param.limit 내 제한을 원합니다. –

+0

값은 배열 $ ('input [name = "skill []"]')에 있습니다. $ (this) .val();}); – Nisam

+0

좋아, 내가 이것을 시도하자 ... 감사 Nisam .. –

0

이 시도 .. 각 값 search_array[0], search_array[1] 얻을 수 있습니다 : 당신은 모든 입력을 반복 http://jsfiddle.net/borglinm/p8hY7/

및 배열

를 구축
var inputs = []; 
$("input").each(function(index, elem) { 
    inputs.push(elem.value); 
}); 
var postData = { 
    'data': inputs, 
    'otherParam': 1 
} 
console.log(postData); 
관련 문제