如何获取数组发布值
Posted
技术标签:
【中文标题】如何获取数组发布值【英文标题】:how to get an array post values 【发布时间】:2021-02-15 13:00:50 【问题描述】:在我的脚本中,我有动态添加的输入字段。我必须使用 php 获取所有输入值,但 $_POST['poids'] 中的问题只给了我输入数组的第一个值,所以只是数组 poids 的第一个元素。这是我的代码:
$(function()
var max_fields = 10;
var $wrapper = $(".container1");
var add_button = $(".add_form_field");
$(add_button).click(function(e)
e.preventDefault();
const vals = $("> .item input[name^=poids]", $wrapper).map(function()
return +this.value
).get()
const val = vals.length === 0 ? 0 : vals.reduce((a, b) => a + b);
if ($("> .item", $wrapper).length < max_fields && val < 100)
const $form_colis = $(".item").first().clone();
$form_colis.find("input").val("");
$wrapper.append($form_colis); //add input box
else
var err_msg = 'limit riched';
//alert(err_msg);
window.alert(err_msg);
);
$wrapper.on("click", ".delete", function(e)
e.preventDefault();
$(this).parent('div').remove();
)
);
<div class="container1" style="min-height:200px">
<button class="add_form_field">Add New Field ✚</button>
<form method="post" action="postForm.php">
<div class="item">
<input type="text" placeholder="Poids" name="poids[]">
<input type="text" placeholder="Longueur" name="longueurs[]">
<input type="text" placeholder="Largeur" name="largeurs[]">
<input type="text" placeholder="Hauteur" name="hauteurs[]">
<a href="#" class="delete">Delete</a>
</div>
<button type="submit" name="" class="btn btn-danger btn-responsive "> Send </button></center>
</a>
</form>
</div>
获取帖子(postForm.php):
$poids = $_POST['poids'];
foreach($poids as $poid)
echo " -->" .$poid;
我希望你明白我的意思。
提前谢谢你
【问题讨论】:
这能回答你的问题吗? html/PHP - Form - Input as array 【参考方案1】:问题是您将带有新输入字段的 div 附加到 $wrapper
,但这超出了表单。您需要将其放入表单中。
改变
$wrapper.append($form_colis); //add input box
到
$('.item', $wrapper).last().after($form_colis); //add input box
【讨论】:
【参考方案2】:我不是 PHP 专家,但仅通过浏览提供的代码,您似乎只是在搜索名称值为 poids 的输入。
const vals = $("> .item input[name^=poids]",$wrapper).map(function() return +this.value ).get()
然后,当您创建 bew 输入时,您不会将 poid 附加到输入名称。
const $form_colis = $(".item").first().clone();
$form_colis.find("input").val("");
$wrapper.append($form_colis);
因此,你只会找到一个用你的方法,那就是这个:
<input type="text" placeholder="Poids" name="poids[]">
所以要解决这个问题,在 $form_colis
方法中,添加 poids
我相信。
【讨论】:
他们正在克隆整个 DIV,从而复制所有输入。以上是关于如何获取数组发布值的主要内容,如果未能解决你的问题,请参考以下文章