繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM