[英]Passing dynamically created form fields to PHP
我试图将动态创建的表单字段传递给php脚本,这让我头疼不已。
我过去已经做过很多次了,在这里我不知道自己在做什么错。
以下是发生情况的示例:
简要说明:我有一个带有textarea的表单,有一个名为“添加更多”的按钮,单击后会通过javascript生成一个新的textarea。 textareas值被推入名为“ comments”的数组中。 当我尝试在我的PHP脚本中循环访问此数组时,它只给我第一项,而没有动态创建的项。
的HTML
<form action="" method="post" enctype="multipart/form-data" accept-charset="utf-8">
<textarea name="comments[]"></textarea>
<a href="javascript: return null;" class="add-more">Add More</a>
</form>
JS
$(".add-more").click(function(){
var new_field = '<textarea name="comments[]"></textarea>';
$(this).before(new_field);
});
PHP-这是问题所在,当我尝试遍历comment []数组时,它只给我第一个,而不带通任何动态生成的内容。
<?php
$comments = $_POST['comments'];
$commentString = "";
foreach($comments as $value) {
$commentString .= $value;
}
?>
因此,在上述情况下,如果我使用“添加更多”按钮创建5个文本区域,在每个文本区域中输入一些文本,然后提交表单,则动态创建的字段均不会发送到php。
有人可以帮忙吗?
谢谢!!
<form action="" method="post" />
应该:
<form action="" method="post">
此问题已解决。
该问题是由于我遇到问题的表格上方未公开而引起的。
感谢大家的答复!
另一个答案是正确的,但是您还需要关闭表格。 您的代码也缺少结尾的“>”。
<form action="" method="post" >
<textarea name="comments[]"></textarea>
<a href="javascript: return null;" class="add-more">Add More</a>
</form>
另外,JS中的类名称与HTML中的类名称不匹配。
在这里,所有的一切都在工作:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<form action="" method="post">
<textarea name="comments[]"></textarea>
<a href="javascript: return null;" class="add-more">Add More</a>
<input type="submit" />
</form>
<script>
$(".add-more").click(function(){
var new_field = '<textarea name="comments[]"></textarea>';
$(this).before(new_field);
});
</script>
<?php
$comments = $_POST['comments'];
$commentString = "";
foreach($comments as $value) {
$commentString .= $value;
}
echo $commentString;
?>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.