【问题标题】:Ajax Jquery in Laravel not saving values to databaseLaravel 中的 Ajax Jquery 未将值保存到数据库
【发布时间】:2014-09-10 15:27:26
【问题描述】:

我是 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>

我的路线.php:

Route::post('/schools/assign', function(){
if(Request::ajax()){
    $AC = new AccessControlEntry();
    $AC->UserID     =   Input::get('duallistbox_demo1');
    $AC->save(); 
}
});

我真的不知道我哪里/哪里出了问题。任何帮助是极大的赞赏!

【问题讨论】:

    标签: jquery ajax database laravel laravel-4


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我刚刚看了join方法,发现implode函数是join的别名。所以我添加了这些代码来将数组转换为字符串:$selectedadmins = $('[name="duallistbox_demo1[]"]').val(); $stringadmins = implode(",", $selectedadmins); 所以在我的 $.ajax 函数中,data: { 'duallistbox_demo1': $('stringadmins'), }, 存储到数据库中仍然不起作用。我做错了吗?真的很难理解 Ajax jquery @undefined
    • @AnneTan data: { 'duallistbox_demo1': $('stringadmins'), }, 不是我所建议的,您不能以这种方式传递 jQuery 对象,您应该将值作为字符串传递,将 jQuery 对象字符串化会导致“可以” t 将循环结构转换为 JSON”错误。
    猜你喜欢
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多