将动态创建的表单字段传递给PHP

将动态创建的表单字段传递给PHP,php,javascript,html,forms,Php,Javascript,Html,Forms,我试图将动态创建的表单字段传递给php脚本,这让我非常头疼 我在过去做过很多次,但我不知道我在这里做错了什么 下面是正在发生的事情的一个例子: 简要说明:我有一个带有文本区域的表单,有一个名为“添加更多”的按钮,单击后,通过javascript生成一个新的文本区域。textareas值被推送到一个名为“comments”的数组中。当我尝试在php脚本中循环这个数组时,它只给我第一个项目,而没有动态创建的项目 HTML JS $(“.addmore”)。单击(函数(){ var new_字段=

我试图将动态创建的表单字段传递给php脚本,这让我非常头疼

我在过去做过很多次,但我不知道我在这里做错了什么

下面是正在发生的事情的一个例子:

简要说明:我有一个带有文本区域的表单,有一个名为“添加更多”的按钮,单击后,通过javascript生成一个新的文本区域。textareas值被推送到一个名为“comments”的数组中。当我尝试在php脚本中循环这个数组时,它只给我第一个项目,而没有动态创建的项目

HTML


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>