[英]How to send multiple forms data in one shot to server using angularjs?
[英]How to send data from multiple forms in one request?
我的网站上有一个表单,可以在其中单击“添加行”按钮动态添加内联表单。 当用户单击“提交”按钮时,我想发送请求中创建的所有表单中的数据,而不仅仅是第一个表单(与当前解决方案一样)。 我该怎么办? 我猜这需要一些AJAX和JQuery魔术吗? 我可以以某种方式在用户每次创建新表单并输入内容,序列化整个内容并随请求一起发送时附加表格的值吗? 我是Web开发的新手,我不确定如何做到这一点。 最终目标是将表单中的数据存储在数据库中。
我的代码如下所示:
main.html:
@app.route('/entries', methods=['GET', 'POST'])
def add_entry():
if request.method == 'POST':
print request.form['entry']
return render_template('add_entry.html')
add_entry.html:
<form action="{{ url_for('add_entry') }}" method=post class="form-inline" role="form" id="entry_form">
<div class="form-group">
<input type="entry" class="form-control" name="entry" placeholder="new entry" value="{{ request.form.entry }}">
</div>
<div class="form-group">
<button type="button" class="btn addButton">Add</button>
</div>
<div class="form-group">
<button type="submit" class="btn submitButton">Submit</button>
</div>
</form>
<form action="{{ url_for('add_entry') }}" method=post class="form-inline hide" role="form" id="entriesTemplate">
<div class="form-group">
<input type="entry" class="form-control" name="entry" placeholder="new entry" value="{{ request.form.entry }}">
</div>
<div class="form-group">
<button type="button" class="btn removeButton">Remove</button>
</div>
</form>
form.js:
$(document).ready(function() {
$('.addButton').click(function(){
$('#entriesTemplate')
.clone()
.removeClass('hide')
.removeAttr('id')
.prependTo("#entry_form");
});
<form>
<input type="text" name="name" value="Leo" />
<input type="text" name="age" value="20" />
<input type='submit' />
</form>
<form>
<input type="text" name="name" value="John" />
<input type="text" name="age" value="25" />
<input type='submit' />
</form>
$("form").submit(function (e) {
e.preventDefault();
var data_array = $("form").map(function(){
return $(this).serializeArray();
});
$.ajax({
url:'ajax.php',
data:data_array,
success:function(html){
}
});
});
试试吧
我认为您可以使用JQuery和Ajax做到这一点。 这是一个例子。 add_entry.html:
<div class="form">
<div class="row-container">
</div>
<div class="form-group">
<input type="entry" class="form-control init-row" name="entry" placeholder="new entry" value="">
</div>
<div class="form-group">
<button type="button" class="btn addButton">Add</button>
</div>
<div class="form-group">
<button type="button" class="btn submitButton">Submit</button>
</div>
</div>
form.js:
$(document).ready(function() {
function getAllRow(){
var rows=[];
$('.new-row').each(function () {
var row={};
row.rowvalue = $(this).val();
rows.push(row);
})
return rows;
}
$('.addButton').click(function(){
var init_row_value=$('.init-row').val();
$('.row-container').append('<input class="new-row" value="'+ init_row_value +'" disabled>');
});
$('.submitButton').click(function(){
var allRowData = getAllRow();
$.ajax({
type: "POST",
url: "allSubmit.php",
data: allRowData
})
});
});
您将在服务器端获取日期作为“行值”列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.