javascript - 将数组文本框添加到 jquery 并传递给 ajax 并添加到数据库
问题描述
我想要一个数组文本框,它将传递给 jquery 并传递给 ajax 以存储在数据库中。
文本框数组将传递给 jquery 函数,然后它将发送到 ajax 到另一个页面以存储在数据库中
<div class="input_fields_wrap">
<button class="add_field_button">Add More Fields</button>
<div class="row">
<div class="col-sm-8">
<input type="text" name="mytext[]" id="personnel[]" style="padding:6px; border-radius:4px; border: none; width:400px;" placeholder="Add Name">
</div>
</div>
预习
<script type="text/javascript">
$(document).ready(function() {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append('<div><input type="text" name="mytext[]" id="personnel[]" style="padding:6px; border-radius:4px; border: none; width:400px; margin-top:5px;" placeholder="Add Name"><a href="#" class="remove_field"><button class="btn btn-sm btn-primary">Remove</button</a></div>'); //add input box
}
});
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});
function preview(){
var personnel = $('#personnel').val();
$.ajax({url: "travel_preview.php", data: { personnel:personnel }, type: "POST", success: function(result){
$('#myPreview').modal("show");
$('.preview_details').html(result);
}});
}
</script>
解决方案
您可以使用.map
检索所有数组输入数据,如下所示。
注意:添加字段并输入您想要的值,然后单击GET DATA按钮在控制台中打印值
$(document).ready(function() {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append('<div><input type="text" name="mytext[]" id="personnel[]" style="padding:6px; border-radius:4px; border: none; width:400px; margin-top:5px;" placeholder="Add Name"><a href="#" class="remove_field"><button class="btn btn-sm btn-primary">Remove</button</a></div>'); //add input box
}
});
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});
function preview(){
//var personnel = $('#personnel').val();
var personnel = $("input[name='mytext[]']")
.map(function(){return $(this).val();}).get();
console.log(personnel);
$.ajax({url: "travel_preview.php", data: { personnel:personnel }, type: "POST", success: function(result){
$('#myPreview').modal("show");
$('.preview_details').html(result);
}});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="input_fields_wrap">
<button type="button" onclick="preview()"> GET DATA </button>
<button class="add_field_button">Add More Fields</button>
<div class="row">
<div class="col-sm-8">
<input type="text" name="mytext[]" id="personnel[]" style="padding:6px; border-radius:4px; border: none; width:400px;" placeholder="Add Name">
</div>
</div>
推荐阅读
- python - 数据帧模式功能
- java - 试图将嵌套的 for 循环表示为 Java 流,但感到困惑
- javascript - 如何更改对象中的布尔值?
- ruby-on-rails - Rails 应用程序在部署到 Azure 时崩溃
- javascript - 如何根据导入组件的页面更改 GatsbyJS 组件内的元素的背景颜色?
- java - 在 Swift 中解密 Java RSA/ECB/PKCS1Padding 加密字符串时出现问题
- flutter - Flutter 将 IconButton 内容与父边界对齐
- flutter - 颤振:输入“未来”
' 不是 'Widget' 类型的子类型 // MaterialPageRoute (无效的)) - python - 在 Python 的子过程中重试 Selenium 异常
- typescript - 如何在 Typeorm/Typescript 中添加请求超时?