数组不是由jQuery ajax发送的

时间:2016-06-02 19:46:01

标签: javascript 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);

但它没有认识到这个功能。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试使用var array_to_send= $(section_values).serialize();替代。 但您也可以使用JSON.sttringify(object);

创建一个对象并对其进行序列化
  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
     }
   });

答案 1 :(得分:0)

(value, value to display)

你正在做类似

的事情
//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;