javascript - 使用 jQuery AJAX 将数据库默认值添加到下拉列表

标签 javascript jquery html ajax laravel

我正在 Laravel 中使用 jQuery AJAX 和引导模式进行 CRUD 操作。但问题是当我想编辑某些内容时。 AJAX 成功请求后,我无法填充下拉列表。如何在编辑模式下拉列表中设置数据库默认值?

我的代码:

$(document).ready(function() {
  $('.acedit').click(function() {
    $('#form')[0].reset();
    $('#modal_form').modal('show'); // show bootstrap modal
    var id = $(this).data('id');
    $.ajax({
      url: "{{route('academic.edit')}}",
      method: 'post',
      data: {
        id: id,
        '_token': "{{csrf_token()}}"
      },
      success: function(data) {
        //$('#mycontrolId').selectmenu('refresh').val(myvalue).attr("selected", "selected");
        $('.degree').val(data.degree).attr('selected', true);
        $('.divison').val(data.division);
        $('.year').val(data.year);
        console.log(data); //{id: 2, user_id: 5, degree: "ssc", division: "First", year: "2009", …}
      }
    });
  });
});

我的 Controller 方法:

public function acadedit(Request $request){
    $id=$request->id;
    $info=Academic::find($id);
    return $info;
}

我的编辑模式下拉列表:

<select class="form-control degree">
    <option value="">-Select Degree-</option>
    <option value="SSC">SSC</option>
    <option value="HSC">HSC</option>
    <option value="BBA">BBA</option>
    <option value="MBA">MBA</option>
</select>

最佳答案

没有selected <select> 上的属性元素,仅适用于 <option> s。但是,您实际上并不需要它,因为设置 <select> 的值元素足以改变选择。但是您需要将该值与正确的字母大小写完全匹配,因此您的大小写中的所有字母都是大写的。

更改此:

$('.degree').val(data.degree).attr('selected',true);

致:

$('.degree').val(data.degree.toUpperCase());

如果您确实更喜欢使用 <option> 上的属性来执行此操作而不是 value <select>的,那么您需要添加<option>像这样的 jQuery 选择器:

$('.degree option[value=' + data.degree.toUpperCase() + ']').attr('selected', true);

演示:

$('.degree option[value=SSC]').attr('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control degree">
  <option value="">-Select Degree-</option>
  <option value="SSC">SSC</option>
  <option value="HSC">HSC</option>
  <option value="BBA">BBA</option>
  <option value="MBA">MBA</option>
</select>

关于javascript - 使用 jQuery AJAX 将数据库默认值添加到下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49002390/

相关文章:

javascript - jQuery/Bootstrap 弹出窗口将费用添加到运行费用计算器

javascript - 如何检查互联网连接并显示在html标签中?

javascript - ajax请求中的404和401错误

JavaScript canvas 使物体射向物体

javascript - 如何在jqxDatatable的列上应用样式

css - 将表单更改为响应式并对其进行定位

javascript - Ajax 内容加载数据库值不起作用

javascript - Angular JS 中的 Jquery 网络摄像头集成

java - 从 Javascript 调用的 Applet 方法

javascript - 是否有任何 javascript 监听器用于将元素添加到 DOM 中的另一个元素中?