2015-01-15 1 views
0

일부 자바 스크립트 코드와 양식에 걸쳐있는 데이터에 대해 아약스를 사용하려고합니다. Ajax는 폼 직렬화와 연관 배열을 결합합니다.

현재 나는 내 데이터와 연관 배열을 가지고 :
var AjaxSendData = {}; 
AjaxSendData['t_searchtext'] = searchtext; 
AjaxSendData['t_numofres'] = numofres; 
AjaxSendData['t_orderbydesc'] = orderbydesc; 
AjaxSendData['t_columnnum'] = columnnum; 
AjaxSendData['t_pagenum'] = pageNum; 
AjaxSendData['t_contenttype'] = contenttype; 
AjaxSendData['t_MediaFilterType'] = MediaTypeID; 
AjaxSendData['t_status'] = status; 
AjaxSendData['t_ResultsFilterID'] = ResultsFilterID; 
AjaxSendData['t_FilterIdType'] = FilterIdType; 

는 또한 나는이 아이디 #addionalargs로 직렬화 할 필요가 양식을 가지고있다.

이 양식에는 체크 박스로 만든 목록을 포함하여 여러 값이 들어 있습니다. 그것도 연재 될 필요가있다.

저는 Mvc를 사용하고 있으므로 모델 바인더가 유효성 검사 목적과보다 명확한 코드를 위해 값을 바인딩 할 수 있기를 바랍니다.

누구나 연관 배열과 양식간에 데이터를 결합 할 수있는 방법을 알고 있습니까?

답변

0

양식을 JavaScript 객체 (연관 배열)로 직렬화해야합니다. 여기서는이 함수가 내장되어 있지 않으므로 여기서는이 함수를 사용합니다.

function SerializeObject(a) { 
var o = {};   
$.each(a, function() { 
    if (o[this.name] !== undefined) { 
     if (!o[this.name].push) { 
      o[this.name] = [o[this.name]]; 
     } 
     o[this.name].push(this.value || ''); 
    } else { 
     o[this.name] = this.value || ''; 
    } 
}); 
return o; 

}

는 당신은 AjaxSendData을 확장해야합니다

var AddArgs = $('#yourform').serializeArray(); 

    var AdditionalArgs = SerializeObject(AddArgs) 

    $.extend(AjaxSendData, AdditionalArgs);