将动态创建的表单字段传递给PHP
我试图将动态创建的表单字段传递给php脚本,这让我非常头疼 我在过去做过很多次,但我不知道我在这里做错了什么 下面是正在发生的事情的一个例子: 简要说明:我有一个带有文本区域的表单,有一个名为“添加更多”的按钮,单击后,通过javascript生成一个新的文本区域。textareas值被推送到一个名为“comments”的数组中。当我尝试在php脚本中循环这个数组时,它只给我第一个项目,而没有动态创建的项目 HTML将动态创建的表单字段传递给PHP,php,javascript,html,forms,Php,Javascript,Html,Forms,我试图将动态创建的表单字段传递给php脚本,这让我非常头疼 我在过去做过很多次,但我不知道我在这里做错了什么 下面是正在发生的事情的一个例子: 简要说明:我有一个带有文本区域的表单,有一个名为“添加更多”的按钮,单击后,通过javascript生成一个新的文本区域。textareas值被推送到一个名为“comments”的数组中。当我尝试在php脚本中循环这个数组时,它只给我第一个项目,而没有动态创建的项目 HTML JS $(“.addmore”)。单击(函数(){ var new_字段=
JS
$(“.addmore”)。单击(函数(){
var new_字段=“”;
$(此).before(新字段);
});
PHP—这就是问题所在,当我尝试循环遍历comments[]数组时,它只给出第一个数组,而没有实现任何动态生成的数组
<?php
$comments = $_POST['comments'];
$commentString = "";
foreach($comments as $value) {
$commentString .= $value;
}
?>
因此,在上面,如果我使用“添加更多”按钮创建5个文本区域,在每个区域中输入一些文本,然后提交表单,那么动态创建的字段都不会发送到php
有人能帮忙吗
谢谢
应该是:
应该是:
另一个答案是正确的,但您也需要关闭表单。您的代码也缺少结束“>”
另一个答案是正确的,但您也需要关闭表单。您的代码也缺少结束“>”
此外,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>
$(“.add more”)。单击(函数(){
var new_字段=“”;
$(此).before(新字段);
});
此外,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>
$(“.add more”)。单击(函数(){
var new_字段=“”;
$(此).before(新字段);
});
此问题已解决
该问题是由我遇到问题的表单上方的未关闭表单引起的
谢谢大家的回复 这个问题已经解决了 该问题是由我遇到问题的表单上方的未关闭表单引起的
谢谢大家的回复 你如何提交表单?我使用表单所在页面的url提交表单,在文件中有一个捕获post变量的php脚本,你可以看到上面的部分。你如何提交表单?我使用表单所在页面的url提交表单,在这个文件中有一个php脚本,它捕获了post变量,您可以看到上面的部分内容。我发帖时很匆忙。这个问题已经用实际的语法纠正了。感谢各位的回复,我的代码中提到的所有内容都是正确的。我发帖时很匆忙。该问题已按实际语法更正。@Kristian您自己的问题的正确答案有时间限制。(记忆中的48小时)@Kristian要想让你自己的答案对你自己的问题是正确的,还有一个时间段。(记忆中的48小时)
<form action="" method="post" >
<textarea name="comments[]"></textarea>
<a href="javascript: return null;" class="add-more">Add More</a>
</form>
<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>