在jquery中获取具有特定格式的数组

时间:2013-10-09 07:22:34

标签: php jquery

我正在研究一个具有特定甲酸盐的阵列。我在表格中有一个表单,其中包含输入字段和单个tr中的下拉列表,如

 <tr><td>input 4 name</td><td>input 4 nic</td><td>input 4 email</td><td>drpdown</td></tr>

但是有一个按钮可以添加任意数量的tr,所以一旦用户在添加行按钮的帮助下添加多行,然后输入数据

<tr><td>name1</td><td>nic1</td><td>email1</td><td>option one from drpdown</td></tr>
<tr><td>name2</td><td>nic2</td><td>email2</td><td>option two from drpdown</td></tr>
<tr><td>name3</td><td>nic3</td><td>email3</td><td>option one from drpdown</td></tr>

用户可以添加任意数量的行但是在上面的示例中我们假设他只需要添加三个,所以他做了,现在当用户放入所有数据并提交表单后,表中每行的eacd数据应保存在mysql表在他们各自的字段中我的上面的例子在mysql表中有三行。因为我有一个所有这些多个字段的数组,但数组的结构不好,这就是我需要解决的问题。下面是我需要得到的数组然后在那之后将是我真实得到的数组并且让它变得正确

我需要的是我之所以需要它,以便我可以轻松插入db

Array
(

   [row1] => Array
   (
    [0] => name1
    [1] => nic1
    [2] => email1
   )

   [row2] => Array
   (
    [0] => name2
    [1] => nic2
    [2] => email2
   )
   [row3] => Array
   (
    [0] => name3
    [1] => nic3
    [2] => email3
   )

 ) 

但我得到的是

  Array
  (

    [row1] => Array
    (
        [0] => name1
        [1] => name2
        [2] => name3
    )

    [row2] => Array
     (
        [0] => nic1
        [1] => nic2
        [2] => nic3
     )

    [row3] => Array
    (
        [0] => email1
        [1] => email2
        [2] => email3            
    )

 )

现在是它的脚本。

  var spoc_name_array = {};
    var inputs = $(".spocName");
    for(var i = 0; i < inputs.length; i++){


    spoc_name_array = $(inputs[i]).val();
    var hiddeninput = '<input type="hidden" name="spocNames[]" value="'+spoc_name_array+'">';
    //append the new hidden input to your hidden form
     $('#services_hidden_form').append(hiddeninput);

    }

    var spoc_nic_array = {};
    var inputs = $(".spocNic");
    for(var i = 0; i < inputs.length; i++){
    //alert($(inputs[i]).val());

    spoc_nic_array = $(inputs[i]).val();
    var hiddeninput = '<input type="hidden" name="spocnic[]" value="'+spoc_nic_array+'">';
    //append the new hidden input to your hidden form
     $('#services_hidden_form').append(hiddeninput);

    }

    var spoc_email_array = {};
    var inputs = $(".spocEmial");
    for(var i = 0; i < inputs.length; i++){

    spoc_email_array = $(inputs[i]).val();
    var hiddeninput = '<input type="hidden" name="spocemail[]" value="'+spoc_email_array+'">';
    //append the new hidden input to your hidden form
     $('#services_hidden_form').append(hiddeninput);

    }

我现在被困在这里所以不知道如何摆脱这个问题。提前感谢您提供任何帮助。如果你认为我可以在已经可用的数组中使用php页面上的逻辑代码将数据插入到mysql表中,那么请知道我是开放的。

1 个答案:

答案 0 :(得分:0)

试试这个,

var i=1;
var finalArray=new Array();
$('tr').each(function(){
    arr=[];
    $(this).find('td').each(function(){
      arr.push($(this).text());
    });
    finalArray['row'+i]=arr;
    i++;
});

Fiddle