2014-12-31 109 views
0

我有一些動態創建的<inputs>,當他們創建一個動態array,它被塞進一個.ajax後。除了動態創建的array之外,它都可以工作。如果我手動創建array它工作正常,我只是無法動態創建它。 ID(infoID1,infoID2,infoID3)和Values(1,2,3)中使用的數字通過PHP循環(infoID{$x})創建。動態創建陣列

樣品輸入

下面 dataArray
<input id="infoID1" type="checkbox" value=1/> 
<input id="info1" type="text" value="something good"/> 

<input id="infoID2" type="checkbox" value=2/> 
<input id="info2" type="text" value="something bad" /> 

<input id="infoID3" type="checkbox" value=3/> 
<input id="info3" type="text" value="something ugly" /> 

的就是我遇到的各種問題。我需要把過的框兩者ID和值。在該動態創建dataArray(使用某種類型的循環),並添加連續的數字值,以兩者的ID變量(infoID + 1變得infoID1)以及值(1,2,3

所以它最終會變成這樣......

var dataArray = { 
    infoID1 : 1, 
    info1 : "something good", 
    infoID2 : 2, 
    info2 : "something bad", 
    infoID3 : 3, 
    info3 : "something ugly" 
}; 

dataArray然後被塞進以下.ajax崗位。該.ajax部分工作正常。

$.ajax({ 
    url: "workingPage.php", 
    data: dataArray, 
    type: 'POST', 
    success: function (otherData) { 
     $(doStuff); 
    } 
}); 

任何幫助表示讚賞!

回答

1

下面是一些變化做:

1到您的輸入添加名字是這樣的:

<form name="myForm" id="myForm"> 
<input id="infoID1" name="mycheckboxid[]" type="checkbox" value=1/> 
<input id="info1" name="mycheckboxvalue[]" type="text" value="something good"/> 

<input id="infoID2" name="mycheckboxid[]" type="checkbox" value=2/> 
<input id="info2" name="mycheckboxvalue[]" type="text" value="something bad" /> 

<input id="infoID3" name="mycheckboxid[]" type="checkbox" value=3/> 
<input id="info3" name="mycheckboxvalue[]" type="text" value="something ugly" /> 
</form> 

2-使用序列化()函數:

$.ajax({ 
    url: "workingPage.php", 
    data: $('form#myForm').serialize(), 
    type: 'POST', 
    success: function (otherData) { 
     $(doStuff); 
    } 
}); 

就是這樣。

+0

我試過.serialize'的'之前methond,我無法得到它的工作,但我也沒有'inputs'在'form'。我嘗試了很多不同的方法,現在我都讓他們感到困惑。我會給它一個鏡頭,讓你知道。謝謝! – JonDoeCA

+1

如果由於某些原因無法更改代碼,則可以在輸入上使用$ .each循環並創建陣列。即使知道這不是最好的方式,但是這是代碼:$(document).ready(function(){var input = $('input'), dataArray = {}; $ .each(輸入,函數(索引,輸入){ //你的ajax查詢在這裏 }); –

+0

我記得爲什麼'.serialize'不適合我。我有其他的數據,我無法從'.serialize'(div和span)獲得,但是將數據填充到數組中並通過'.ajax'發佈。然而,你使用'.each'的第二個建議對於我所需要的將會很好。感謝這兩個建議。 – JonDoeCA