Laravel中的Ajax Jquery没有将值保存到数据库

时间:2014-07-19 17:03:06

标签: jquery ajax database laravel laravel-4

我是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(); 
}
});

我真的无法弄清楚我出错了什么/哪里。任何帮助是极大的赞赏!

1 个答案:

答案 0 :(得分:1)

您正尝试在String对象上调用val方法。缺少$ / jQuery

data: ('[name="duallistbox_demo1[]"]').val(),

除此之外,您应该传递identifier:value对:

data: {
  'duallistbox_demo1': $('[name="duallistbox_demo1[]"]').val(),
}

由于多重选择的val返回一个数组,您可能需要调用join方法将数组转换为字符串。