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

Posted

技术标签:

【中文标题】Laravel 中的 Ajax Jquery 未将值保存到数据库【英文标题】:Ajax Jquery in Laravel not saving values to database 【发布时间】: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(); 

);

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

【问题讨论】:

【参考方案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”错误。

以上是关于Laravel 中的 Ajax Jquery 未将值保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章

Struts 2 操作未将所需结果返回给 Jquery Ajax 调用

AJAX 未将 Handsontable 数据传递给控制器

使用 jQuery AJAX 从 Laravel 5 中的联系表单发送电子邮件

Laravel 中的 Ajax 请求返回一个空对象

当 Ajax 响应来自使用 select2 的 laravel 控制器时,如何检查 JQuery 附加选项中的条件?

Laravel + jquery ajax 找不到文件的地址