2013-03-24 61 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