【发布时间】:2016-10-02 17:50:10
【问题描述】:
我希望使用 AJAX 通过他们的 ID 提交多个表单,ID 是使用下面的 jQuery 找到和生成的。当然,每个表单都有单独的唯一 ID,目前由变量 i 创建。
<script>
$(document).on('click', '#button', function() {
var wrap = $(this).closest('div.form_wrap');
wrap.find('form').each(function() {
var id = $(this).prop('id');
var i = $('#'+id);
console.log(i);
});
});
</script>
HTML
<?php $f = 0;?>
@foreach ($workouts as $workout)
<?php $formid="form_".$x."_".$f;?>
{!! Form::open(array('route' => 'workoutshared.store', 'method' => 'POST', 'ID' => $formid)) !!}
{{ csrf_field() }}
{{ Form::hidden('user_id', Auth::user()->id)}}
{{ Form::hidden('date', $entry)}}
{{ Form::hidden('weight', $workout->weight)}}
{{ Form::hidden('exercise', $workout->exercise)}}
{{ Form::hidden('reps', $workout->reps)}}
{{ Form::hidden('sets', $workout->sets)}}
{{ Form::checkbox('share', 1, array('class' => 'form-control'))}}
{!! Form::close() !!}
<tr>
<th>{{$workout->exercise}}</th>
<td>{{$workout->weight}}</td>
<td>{{$workout->reps}}</td>
<td>{{$workout->sets}}</td>
</tr>
<?php $f++; endforeach;?>
更新
<script>
$(document).on('click', '#button', function() {
var wrap = $(this).closest('div.form_wrap');
wrap.find('form').each(function() {
var id = $(this).prop('id');
var i = $('#'+id);
console.log(i);
$(i).submit(function() {
var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(response) {
console.log(response);
}
});
return false;
});
});
});
</script>
【问题讨论】:
-
你的 HTML 在哪里?
-
具体问题和疑问是什么?
-
请注意
<form>不能是<tr>的兄弟...这是无效的html -
我对 AJAX 的经验很少,希望使用 i 的 jQuery 变量生成的 ID 提交表单。表格的数量是可变的。
标签: javascript php jquery ajax forms