【发布时间】:2015-11-05 23:05:39
【问题描述】:
我有以下表格:
<td>
<input type="text" name='name[]' class="form-control"/>
</td>
<td>
<input type="text" name='mail[]' class="form-control"/>
</td>
<td>
<select name="gender[]" class="form-control">
<option value="m">Male</option>
<option value="f">Female</option>
</select>
</td>
<td>
<input type="date" name='birth[]' class="form-control"/>
</td>
<td>
<input type="number" name='dni[]' class="form-control"/>
</td>
<td>
<input type="number" name='phone[]' class="form-control"/>
</td>
当我尝试提交表单时我的 ajax 调用
$('#form-reserve-list').on('submit', function(e) {
e.preventDefault();
var names = $("input[name='name[]']").serialize();
var mails = $("input[name='mail[]']").serialize();
var genders = $("select[name='gender[]']").serialize();
var births = $("input[name='birth[]']").serialize();
var dnis = $("input[name='dni[]']").serialize();
var phones = $("input[name='phone[]']").serialize();
var _token = $('input[name=_token]').val();
var est_id = $('input[name=est_id]').val();
var event_id = $('input[name=event_id]').val();
var url = 'http://localhost:82/boulevard/public/event/reserve/list';
$.ajax({
type: 'POST',
url: url,
data: {names:names, mails:mails, genders:genders, births:births, dnis:dnis, phones:phones, _token: _token, est_id:est_id, event_id:event_id},
cache: false,
success: function(data){
alert(data);
}
});
我想在我的控制器中接收它并执行一个 foreach 或 for 循环并将其保存到我的数据库中,但问题是当我尝试时:
$names = Input::get('names'); //from ajax names
foreach($names as $name){
$name[];
//also tried $name[$key] after i added $key =>
}
我做错了吗?谢谢你的帮助。
编辑: 当我在 ajax 中执行 alert($names) 时,它显示为 name%5B%D=carlos&name%5B%D=kevin 这是它假设的方式吗?我也做了 dd($names);并且还显示 name%5B%D=carlos&name%5B%D=kevin 但是当我使用上面提到的 foreach 循环时,chrome 控制台显示内部错误 500,我想使用 foreach 吗?
编辑2:
当我做 dd(Input::all())
name%5B%5D=carlos&name%5B%5D=mendieta&name%5B%5D=cordero
我如何循环这些?
【问题讨论】:
-
你的问题是什么(但问题是当我尝试时:)?
-
在您的控制器中尝试
dd(Input::all())并向我们展示它打印的内容。 -
快速提问,有没有办法在使用 ajax 时查看 dd() 数据?我通常在 success: 部分中使用 alert(data),这是我的控制器中的 dd(Input::all()) 但在带有一堆 span 的警报框中打印出来
-
您可以简单地使用
console.log(data)而不是警报,您可以在控制台中进行检查 -
我认为如果你想在你的控制器中把你的数据当作一个数组,你不应该序列化它。
标签: php jquery arrays ajax laravel