2016-06-02 3 views
0

jQuery ajax 함수를 사용하여 배열을 보내려고하지만 작동하지 않습니다. (내가 다른 대답에서 본대로)배열이 jQuery ajax에 의해 전송되지 않았습니다.

if (section_name == "first_details_div") { 
    var fields_arr = ["f_name", "l_name", "identity_number", "kupat_holim_id", "kupat_holim_insurance_ID", "birth_date", "father_name", "family_status_id"]; 
    var section_values = new Array(); 

    for (i = 0; i < fields_arr.length; i++) { 

     if (document.getElementById(fields_arr[i])) 
     section_values[fields_arr[i]] = document.getElementById(fields_arr[i]).value; 

    } 
    } 

    var array_to_send = $.serialize(section_values); 

    $.post("ajax_save_intek_section.php", { 
     section_name: section_name, 
     section_values: array_to_send 
    }, 
    function(data) { 
     alert('here!'); 
     if (data) { 
     alert(data); //"<?=getstring('saved_successfully')?>" 
     } 

    }); 

내가 전에이 줄을 추가하려고 :

여기 내 코드입니다

var array_to_send = $.serialize(section_values); 

하지만이 기능을 인식하지 못합니다.

아이디어가 있으십니까?

답변

0

대신 var array_to_send= $(section_values).serialize(); 대신 사용하십시오. 하지만 객체를 만들고 JSON.sttringify (객체)로 직렬화 할 수도 있습니다.

var request = { 
    section_name: section_name, 
    section_values: section_values 
    }; 

    $.post("ajax_save_intek_section.php", JSON.stringify(request), 
    function(data){ 
     //rest of your code here 
    } 
    }); 
+0

내가'VAR array_to_send = $ (section_values) .serialize를 (사용이하고 싶었던 생각,'지금은 던져 오류를 해달라고하지만, 여전히 PHP 페이지에 배열을받지. 아들을 시험해 봐? – user1797901

+0

글쎄, 함수에 대한 설명은 "폼 요소 집합을 제출 문자열로 인코딩하십시오." 이 경우 입력 또는 전체 양식을 직렬화해야하지만 javascript 오브젝트는 직렬화해야합니다.이 경우 JSON.stringify를 사용하십시오. –

+0

배열을 어떻게 가져 오려고합니까? 개발자 콘솔에서 배열을 볼 수 있습니까? 아니면 잘못된 방식으로 값을 가져 오려고 할 수 있습니다. http://jsbin.com/gefuduxane/edit?html,js,output ajax를 통한 배열 샘플입니다. 유의할 점은 서버에있는 값을 얻을 필요가 있다는 것입니다. request.getParameter ("test []") – Vatsal

0
//Array of STRINGS 
var fields_arr = ["f_name", "l_name", "identity_number", "kupat_holim_id", 

//Array that takes INTEGER as an index 
var section_values = new Array(); 
     for (i = 0; i < fields_arr.length; i++) {   
      if (document.getElementById(fields_arr[i])) 

      //giving the STRING as an INDEX to the array instead of INTEGER 
      section_values[fields_arr[i]] = document.getElementById(fields_arr[i]).value;   
     } 
    } 

당신은 하늘의 배열로 section_values을 유지 할

section_values["f_name"]=document.getElementById(fields_arr[i]).value; 

같은 일을하고 있습니다. 난 당신이) 대신

section_values[i]=document.getElementById(fields_arr[i]).value; 
관련 문제