2013-11-04 51 views
0

不確定我選擇的標題是非常明確的。如果不是,對不起。如何從表單中使用jquery附加依賴輸入中的數據

我的問題是,如果我們有像這樣依賴輸入的形式:

<form> 
<input type='text' name='item-1'/> 
<input type='text' name='sub-item-1'/> 
<input type='text' name='sub-item-2'/> 
</form> 

在這種情況下,子項直接與上述項目相關聯。

現在,我們將2個按鈕添加到此表單。

第一個將添加(jQuery的追加)輸入子項,在這種情況下,這將是:

<input type='text' name='sub-item-3'/> 

第二個按鈕將增加(也jQuery的追加),一個全新的項目有它自己的子項。

所以,我們最終可能會以這樣的:

<form> 
<input type='text' name='item-1'/> 
<input type='text' name='sub-item-1'/> 
<input type='text' name='sub-item-2'/> 
<input type='text' name='sub-item-3'/> 

<input type='text' name='item-2'/> 
<input type='text' name='sub-item-1'/> 
<input type='text' name='sub-item-2'/> 
</form> 

如果我使用一個提交按鈕的數據「dependecy」不會通過。所以,我最終是這樣的:

array(
item-1 => random value A, 
sub-item-1 => random value B, 
sub-item-2 => random value C, 
etc) 

所以我的問題是我怎麼可以結束了一個數組,轉換數據的關係是不。例如,如下所示:

array(
Value item 1 => array(
sub-item-1 => random value B, 
sub-item-2 => random value C) 
Value item 2 => array(
sub-item-1 => random value B)) 
etc 

欣賞anu對其他結構的表單的反饋,或者在之後構造數據的方法。重要的是結束於顯示輸入依賴性的數組。

那麼希望它足夠清楚,盡我所能。

回答

0

首先,表單輸入的名稱屬性必須全部是唯一的。因此,對於每個「父母」而不是「子項目-1」,你可以做「子項目1-1」,對於下一個「子項目2-1」。

下面是一些代碼,會採取這樣的陣列,並在2 d陣列重新組織(只是交換你inputValues與$ _ POST)

$inputValues = array(
    'item-1'=>'parent 1', 
    'sub-item-1-1'=>'sub value 1-1', 
    'sub-item-1-2'=>'sub value 1-2', 
    'item-2'=>'parent 2', 
    'sub-item-2-1'=>'sub value 2-1' 
); 

$outputArray = array(); 
//create array of parents 
foreach($inputValues AS $key=>$value){ 
    if(is_numeric($key[5])){ 
     array_push($outputArray,array('parent'=>$value)); 
    } 
} 

//add children 
foreach($inputValues AS $key=>$value){ 
    if(is_numeric($key[9])){ 
     $parentIndex = $key[9]-1; 
     $outputArray[$parentIndex][$key] = $value; 
    } 
} 
print_r($outputArray); 

編輯:剛剛意識到這不會,如果你的工作商品計數進入雙位數 - 如果是這樣,請使用substring從密鑰名稱中提取商品/父級代碼,而不是「$key[5]」或「$key[9]

+0

這樣做有訣竅。非常感謝。乾杯。 – Notsogood13

相關問題