gpt4 book ai didi

javascript - PHP 和 JQuery 添加动态输入

转载 作者:行者123 更新时间:2023-11-30 06:23:51 27 4
gpt4 key购买 nike

我正在使用 Jquery 以便在我的页面上添加动态输入。一开始我只想显示一个输入,然后可以通过单击按钮添加更多输入。

这按预期工作。

然后我使用 PHP 来捕获 $_POST输入的值并将它们发送到外部脚本。这也有效,但是我总是在数组中收到一个额外的项目,而且它是空的。

我认为这是因为我有一个隐藏的 <div>我的 HTML 中的字段,在生成新输入时显示?

我的代码如下;

HTML

// unnecessary code removed
<div class="after-add-more">
<button class="add-more" type="button" title="Add"></button>
<input name="addmore[]" value="" type="text">
</div>

<div class="copy-fields hide">
<div>
<button class="remove" type="button" title="Remove"></button>
<input type="text" name="addmore[]" value="">
</div>
</div>

JQUERY

$(document).ready(function() {
//here first get the contents of the div with name class copy-fields and add it to after "after-add-more" div class.
$(".add-more").click(function() {
var html = $(".copy-fields").html();
$(".after-add-more").after(html);
});
//here it will remove the current value of the remove button which has been pressed
$("body").on("click", ".remove", function() {
$(this).parents(".control-group").remove();
});
});

PHP

<?php
// unnecessary code removed
$field_values_array = $_POST['addmore'];
?>

在不生成额外输入的情况下,我输入了 1111111进入输入框并提交。 print_r($_POST)产生;

[addmore] => Array
(
[0] => 1111111
[1] =>
)

感谢任何帮助。

最佳答案

您最好只获取被单击元素的父元素并在之后添加您的标记。这是一个例子:

$(document).ready(function() {

// this function handles the click event
function addField(parent) {
// find your template, in this case its the first .after-add-more
var html = $(".after-add-more").first().clone();
// reset the value of any inputs
$('input', html).val('');
// wire the click handler for the button
$("button", html).click(function() {
addField($(this).parent());
});
// append it to the parent of the parent, addContainer
html.appendTo(parent.parent());
}

// wire the click handler for the add-more button
$(".add-more").click(function() {
addField($(this).parent());
});

// I don't know what the intention of this code is so I'm leaving it alone
$("body").on("click", ".remove", function() {
$(this).parents(".control-group").remove();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
// unnecessary code removed
<div id="addContainer">
<div class="after-add-more">
<button class="add-more" type="button" title="Add">Add</button>
<input name="addmore[]" value="" type="text">
</div>
</div>
<div class="copy-fields hide">
<div>
<button class="remove" type="button" title="Remove">Remove</button>
<input type="text" name="addmore[]" value="">
</div>
</div>

关于javascript - PHP 和 JQuery 添加动态输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51657503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com