답변:
serializeArray
[docs]를 사용 하고 추가 데이터를 추가 할 수 있습니다 .
var data = $('#myForm').serializeArray();
data.push({name: 'wordlist', value: wordlist});
$.post("page.php", data);
serializeArray
당신이 생각하는 구조를 생성하지 않습니다. 데모로 무엇을 보여 주려고하는지 잘 모르겠습니다. 당신은 배열의 길이를 경고하고 있습니다. 내 데모 가 당신을 확신하지 못하면 문서를 참조하십시오 .
$.post("page.php",( $('#myForm').serialize()+'&'+$.param({ 'wordlist': wordlist })));
양식 데이터에 자바 스크립트 객체를 추가하려는 경우 다음 코드를 사용할 수 있습니다.
var data = {name1: 'value1', name2: 'value2'};
var postData = $('#my-form').serializeArray();
for (var key in data) {
if (data.hasOwnProperty(key)) {
postData.push({name:key, value:data[key]});
}
}
$.post(url, postData, function(){});
또는 serializeObject () 메소드를 추가 하면 다음을 수행 할 수 있습니다
var data = {name1: 'value1', name2: 'value2'};
var postData = $('#my-form').serializeObject();
$.extend(postData, data);
$.post(url, postData, function(){});
[{name: 'wordlist'}, {value: wordlist}]
. jQuery가 이해하는 형식이 아니기 때문에 실제로 작동하지는 않습니다.
새 버전의 jquery에서는 다음 단계를 통해 수행 할 수 있습니다.
serializeArray()
push()
배열에 추가 매개 변수를 추가하기위한 호출 또는 유사한 메소드$.param(arr)
jquery ajax의 data
param 으로 사용될 수있는 직렬화 된 문자열을 얻기 위해 호출하십시오 .예제 코드 :
var paramArr = $("#loginForm").serializeArray();
paramArr.push( {name:'size', value:7} );
$.post("rest/account/login", $.param(paramArr), function(result) {
// ...
}
$.ajax({
type: 'POST',
url: 'test.php',
data:$("#Test-form").serialize(),
dataType:'json',
beforeSend:function(xhr, settings){
settings.data += '&moreinfo=MoreData';
},
success:function(data){
// json response
},
error: function(data) {
// if error occured
}
});
양식에 AJAX 요청을 해당 값으로 보내기 직전에 설정 한 추가 필드를 숨겨진 필드로 포함 할 수 있습니다.
또 다른 가능성은 이 작은 보석 을 하여 양식을 문자열 대신 자바 스크립트 객체로 직렬화하고 누락 된 데이터를 추가하는 것입니다.
var data = $('#myForm').serializeObject();
// now add some additional stuff
data['wordlist'] = wordlist;
$.post('/page.php', data);
serializeObject
. 너 그거 어디서 났니?
나는 객체를 객체로 유지하고 미친 유형 이동을 좋아하지 않습니다. 여기 내 길이야
var post_vars = $('#my-form').serializeArray();
$.ajax({
url: '//site.com/script.php',
method: 'POST',
data: post_vars,
complete: function() {
$.ajax({
url: '//site.com/script2.php',
method: 'POST',
data: post_vars.concat({
name: 'EXTRA_VAR',
value: 'WOW THIS WORKS!'
})
});
}
});
위에서 볼 수 없다면 .concat 함수를 사용하고 포스트 변수가 'name'이고 값이 'value'인 객체를 전달했습니다!
도움이 되었기를 바랍니다.