2013-03-24 71 views
1

這裏是我的代碼,希望大家都能理解。
[HTML形式編碼]
php post不能夠通過jquery追加附加的元素

<form method='post' action='pro/handle.php'><br/> 
    <input type='text' name='FirstTXT' value='First'> 
    <button type='button' name='ADDINPUT'>add</button> 
    <div id='SETSET'> 
     <!-- prepare for adding input element by using jquery --> 
    </div> 
    <input type='text' name='LastTXT' value='Last'> 
    <button type='submit' name='BTN' value='Submit'>submit</button> 
</form> 

[Jquery的編碼]

$(document).on("click","[name=ADDINPUT]",function(){ 
    var inp = "<input type='text' name='ADDTXT'>"; 
    $("#SETSET").append(inp); 
}); 

到目前爲止NO錯誤/問題對於上述(測試)的代碼,jquery的輸入做相應地追加到#SETSET中。

[問題是]
點擊表格後[提交]按鈕,PHP 能夠得到的[ADDTXT]
元素,當我使用PHP循環&得到一切從以前的網頁,結果如下: -

[PHP編碼]

foreach($_post as $key=>$val){ 
    echo "<br/>$key : $val"; 
} 

[結果]

FirstTXT : First<br/> 
LastTXT : Last<br/> 
BTN : Submit<br/> 
//=== Missing ADDTXT (between First & Last)===// 

你們/女士們知道爲什麼嗎?

+0

我認爲你必須設置DIV的內部HTML不追加value.Use的.html()的jQuery功能。點擊 – 2013-03-24 09:29:00

+0

.html()後可以繼續插入/追加,請使用firebug檢查您的div是否包含正確的html。如果我需要添加更多然後1個輸入元素? – user1493339 2013-03-24 09:36:05

回答

0

您有來自該字段的數組。

替換:

var inp = "<input type='text' name='ADDTXT'>"; 

有了:

var inp = "<input type='text' name='ADDTXT[]'>"; 

和PHP:

if(is_array($val)) { print_r($val); } 

或嘗試:

var no = 0; 
$(document).on("click","[name=ADDINPUT]",function(){ 
++no; 
var inp = "<input type='text' name='ADDTXT"+ no +"'>"; 
$("#SETSET").append(inp); 
}); 
+0

對於我的真實編碼,名稱將不會相同因爲每次我加我會把一個數字後面,ADDTXT1,ADDTXT2,ADDTXT3 ....,但即使具有相同的名稱,PHP應該能夠抓圖ADDTXT,但在我的情況下,PHP沒有。 – user1493339 2013-03-24 09:38:54

+0

在我的測試envir上,它抓取了ADDTXT,但只有最後一個附加的輸入。如果我轉換成ADDTXT [],它將獲取所有輸入。 – Crsr 2013-03-24 09:45:54

+0

我編輯我的答案。請測試它。當我測試,它抓住所有ADDTXTx字段(只有jQuery的修改) – Crsr 2013-03-24 09:51:35

0

也許這:

HTML:

<form method='post' action='pro/handle.php'><br/> 
    <input type='text' name='FirstTXT' value='First'> 
    <button type='button' name='ADDINPUT'>add</button> 
    <div id='SETSET' style='display: none;'> 
     <!-- prepare for adding input element by using jquery --> 
     <input type='text' id='ADDTXT' name='ADDTXT' disabled='disabled'> 
    </div> 
    <input type='text' name='LastTXT' value='Last'> 
    <button type='submit' name='BTN' value='Submit'>submit</button> 
</form> 

和JS:

$(document).on("click","[name=ADDINPUT]",function(){ 
    $("#SETSET").show(); 
    $("#ADDTXT").removeAttr("disabled"); 
}); 
+0

jquery輸入確實顯示,並且在添加行後仍然是相同的,謝謝 – user1493339 2013-03-24 09:41:32

+0

在'$ _POST'數組中沒有'ADDTXT'鍵? – mkjasinski 2013-03-24 09:45:29