직렬화 및 추가 데이터가 포함 된 jQuery post () 것이 있지만 ‘wordlist’양식 데이터 는 보내지 않고

serialize()양식 외부에있는 다른 데이터 를 게시 할 수 있는지 확인하려고합니다 .

여기에 내가 생각한 것이 있지만 'wordlist'양식 데이터 는 보내지 않고 보냅니다 .

$.post("page.php",( $('#myForm').serialize(), { 'wordlist': wordlist }));

누구든지 아이디어가 있습니까?



답변

serializeArray [docs]를 사용 하고 추가 데이터를 추가 할 수 있습니다 .

var data = $('#myForm').serializeArray();
data.push({name: 'wordlist', value: wordlist});

$.post("page.php", data);

답변

$ .param 사용해 보기

$.post("page.php",( $('#myForm').serialize()+'&'+$.param({ 'wordlist': wordlist })));

답변

ajax 파일 업로드에서이를 수행해야하는 경우 대체 솔루션 :

var data = new FormData( $('#form')[0] ).append( 'name' , value );

또는 더 간단합니다.

$('form').on('submit',function(e){

    e.preventDefault();
    var data = new FormData( this ).append('name', value );

    // ... your ajax code here ...

    return false;

});

답변

양식 데이터에 자바 스크립트 객체를 추가하려는 경우 다음 코드를 사용할 수 있습니다.

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(){});

답변

새 버전의 jquery에서는 다음 단계를 통해 수행 할 수 있습니다.

  • 매개 변수 배열을 통해 얻을 serializeArray()
  • push()배열에 추가 매개 변수를 추가하기위한 호출 또는 유사한 메소드
  • $.param(arr)jquery ajax의 dataparam 으로 사용될 수있는 직렬화 된 문자열을 얻기 위해 호출하십시오 .

예제 코드 :

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);