2013-08-23 50 views
0

在PHP中我有以下php的服務器端關聯數組到HTML的客戶端

$var=array(); 
$var[0][0][num]='1'; 
$var[0][0][text]='2'; 
$var[0][1][num]='3'; 
$var[0][1][text]='4'; 
$var[1][0][num]='5'; 
$var[1][0][text]='6'; 
$var[1][1][num]='7'; 
$var[1][1][text]='8'; 

我需要移動變量對[text][num]上下對新的追加到陣列的高端磁盤陣列。

在服務器端很簡單,但我希望允許在客戶端進行這些操作。

所以,它應該看起來像如下因素

<form> 
<div> 
<input name="var[0][0][num]" value="1"> 
<input name="var[0][0][text]" value="2"> 
<input name="var[0][1][num]" value="3"> 
<input name="var[0][1][text]" value="4"> 
</div> 

<div> 
<input name="var[1][0][num]" value="5"> 
<input name="var[1][0][text]" value="6"> 
<input name="var[1][1][num]" value="7"> 
<input name="var[1][1][text]" value="8"> 
</div> 
</form> 

所以,現在我需要這些div的拷貝到形式的結束和上下移動這些div,並保持他們的價值觀。

例如,我可以把它拷貝上股利和追加到form

onlick="this.parentNode.appendChild(this.cloneNode(true))" 

和形式,看起來像後:

<form> 
<div onlick="this.parentNode.appendChild(this.cloneNode(true))"> 
<input name="var[0][0][num]" value="1"> 
<input name="var[0][0][text]" value="2"> 
<input name="var[0][1][num]" value="3"> 
<input name="var[0][1][text]" value="4"> 
</div> 

<div> 
<input name="var[1][0][num]" value="5"> 
<input name="var[1][0][text]" value="6"> 
<input name="var[1][1][num]" value="7"> 
<input name="var[1][1][text]" value="8"> 
</div> 

<div onlick="this.parentNode.appendChild(this.cloneNode(true))"> 
<input name="var[0][0][num]" value="1"> 
<input name="var[0][0][text]" value="2"> 
<input name="var[0][1][num]" value="3"> 
<input name="var[0][1][text]" value="4"> 
</div> 

</form> 

我想不通,怎麼改名字複製div的輸入。例如,複製及附加DIV應該是

<div onlick="this.parentNode.appendChild(this.cloneNode(true))"> 
<input name="var[2][0][num]" value="1"> 
<input name="var[2][0][text]" value="2"> 
<input name="var[2][1][num]" value="3"> 
<input name="var[2][1][text]" value="4"> 
</div> 

或者,當我移動低格低於上格,它們應該被重新命名,看起來像

<div> 
<input name="var[0][0][num]" value="5"> 
<input name="var[0][0][text]" value="6"> 
<input name="var[0][1][num]" value="7"> 
<input name="var[0][1][text]" value="8"> 
</div> 

<div> 
<input name="var[1][0][num]" value="1"> 
<input name="var[1][0][text]" value="2"> 
<input name="var[1][1][num]" value="3"> 
<input name="var[1][1][text]" value="4"> 
</div> 

好吧,我知道這個問題很複雜並可能看起來甚至愚蠢,所以我只需要一個猜測至少=)

+0

聽起來像是一個工作,可能是AJAX更新服務器的更改。此外,JavaScript庫jQuery(也與AJAX)將更容易。 – gibberish

+1

不要移動dom元素,如果你需要保持命名不變。移動VALUES。它會有更多的工作,但是比每次移動時重建名稱屬性都更容易。 –

+0

@Marc B我很高興,但有可能,某些div會有不同數量的變量(不僅是'num'和'text'鍵) –

回答

1

你沒有在你的標籤中提到jQuery,但這是我會看。特別是,jQueryUI庫,它運行在jQuery之上。

jQuery是一個JavaScript庫,與傳統的JavaScript相比,它更高效(少打字,多用少量代碼)。

查看jQueryUI可排序小部件here

的jQuery教程:Alex Garret's jQuery tutorials at the thenewboston.com

Alex Garret's website有更多的教程。

+0

是的,它看起來很好,但我試圖避免JQ。 –

+0

你能告訴,這是否JQUI重命名輸入名稱或保持它們不變,併爲它們分配(交換)新值? –

+0

你必須爲此使用JavaScript或jQuery,並且jQuery的坦白地說要容易掌握。恐怕我不知道第二個問題的答案。 – gibberish

相關問題