简体   繁体   English

如何在jQuery select2 Laravel中设置选定的值?

[英]How to set selected value in jquery select2 laravel?

I am using Select2 in my laravel apps. 我在laravel应用中使用Select2。 I have a problem when update the data. 更新数据时出现问题。 There is a data in the database that I input before. 我之前在数据库中输入了一个数据。 But when I try to update, the data won't selected in my select2. 但是当我尝试更新时,数据不会在我的select2中选择。 There are data on the list of select2 like in the picture below: select2列表中有数据,如下图所示:

在此处输入图片说明

I am using ajax too, so if I change the patient relationship data, the patient name is automatically change depends on the patient relationship. 我也使用ajax,因此,如果我更改患者关系数据,则患者名称会根据患者关系自动更改。 This is my function : 这是我的功能:

function medical_update_modal(ID, CLAIMDATE, EMPL_ID, PATIENTRELATIONSHIP, EMPLFAM_ID, EMPLFAM_NAME, CLAIM_TYPE, CLAIMAMOUNT, MEDICALPARTNER, CLAIMTYPE) {
    $('#medical_id_update').val(ID)
    $('#receipt_date_update').val(CLAIMDATE);
    $('#patient_relationship_update').val(PATIENTRELATIONSHIP);
    $('#claim_type_update').val(CLAIM_TYPE);
    $('#claim_amount_update').val(CLAIMAMOUNT);
    $('#partner_type_update').val(MEDICALPARTNER);
    $('#claim_type_update').val(CLAIMTYPE);
    $('.selectpicker').select2('destroy');
    $('.selectpicker').select2({
        theme: "bootstrap"
    });
    $.ajax({
        url: "getPatientName",
        type: "GET",
        data: "PATIENT_RELATIONSHIP="+PATIENTRELATIONSHIP,
        cache: false,
        success: function(data){
          var obj = $.parseJSON(data);
          $("select#patient_name_update").html(obj.opt);
        }
    }); 
}

This is code in the controller: 这是控制器中的代码:

public function getPatientName(Request $request)
{   
    $relation = $request['PATIENT_RELATIONSHIP'];
    if($relation == 'Own Self'){
        $getpatientrelation = DB::select("SELECT EMPL_ID AS EMPLFAM_ID, EMPL_NAME AS EMPLFAM_NAME FROM [HUMANCAPITAL].[dbo].[EMPLOYEE] WHERE EMPL_ID = '" . Session::get('Empl_ID') . "'");
    }
    else{
        $getpatientrelation = DB::select("SELECT EMPLFAM_ID, EMPLFAM_NAME, EMPLFAM_RELATIONSHIP FROM [HUMANCAPITAL].[dbo].[EMPLFAMILY]  WHERE EMPL_ID = '". Session::get('Empl_ID') ."' and EMPLFAM_GENDER = 'Female' and EMPLFAM_RELATIONSHIP = 'Spouse'");
    }

    $msg["opt"]="";
    $msg["opt"] .='<option></option>';
    foreach($getpatientrelation as $getData):
        $msg["opt"] .='<option value="'.$getData->EMPLFAM_ID.'"> '.$getData->EMPLFAM_NAME.'</option>';
    endforeach;
    echo json_encode($msg);

}

This is code in the view: 这是视图中的代码:

<select id="patient_name_update" name="patient_name_update" class="form-control selectpicker"  style="width:100%" required></select>

Do you know what I missed? 你知道我想念的吗?

Use jquery .va() method to set selected value like 使用jquery .va()方法设置所选值,例如

success: function(data){
          var obj = $.parseJSON(data);
          $("select#patient_name_update").html(obj.opt);
          $("select#patient_name_update").val(selectedval);
        }

You are using select2 so don't get more confuse. 您正在使用select2,所以不要感到困惑。

On server side while loading/looping your options just add selected="selected" to those options you want to show automatically selected. 在服务器端,加载/循环选项时,只需将selected =“ selected”添加到要显示为自动选择的那些选项即可。

Then at end of your page add javascript 然后在页面末尾添加javascript

<script>
 $(document).ready(function() {
     $('select').select2();
 });
</script> 

Select 2 will automatically show selected options that has selected="selected" . 选择2将自动显示已选择了“ selected”的选择选项。

Thanks 谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM