我是AJAX Jquery的初学者。我的表单将包含用户已选择的名为 dualistbox_demo1 [] 的值数组。但是,似乎ajax函数没有将值存储到我的数据库中。
我在刀片模板中的表单:
{{Form::open(array('url' => 'schools/assign',"id"=>"demoform"))}}
<select multiple="multiple" size="10" name="duallistbox_demo1[]">
@foreach($user as $key => $value)
<option value="{{ $value->id}}">{{ $value->FirstName }} {{ $value->LastName }}</option>
@endforeach
</select>
{{ Form::submit('Submit', array('class' => 'btn btn-default btn-block')) }}
{{ Form::close() }}
这是我的js脚本:
<script>
$("#demoform").submit(function() {
$.ajax({
url: 'action',
type: 'POST',
data: ('[name="duallistbox_demo1[]"]').val(),
success : function(data)
{
console.log(data);
}
});
});
</script>
我的routes.php:
Route::post('/schools/assign', function(){
if(Request::ajax()){
$AC = new AccessControlEntry();
$AC->UserID = Input::get('duallistbox_demo1');
$AC->save();
}
});
我真的无法弄清楚我出错了什么/哪里。任何帮助是极大的赞赏!
答案 0 :(得分:1)
您正尝试在String对象上调用val
方法。缺少$
/ jQuery
:
data: ('[name="duallistbox_demo1[]"]').val(),
除此之外,您应该传递identifier:value
对:
data: {
'duallistbox_demo1': $('[name="duallistbox_demo1[]"]').val(),
}
由于多重选择的val
返回一个数组,您可能需要调用join
方法将数组转换为字符串。