2016-02-21 10 views
5

मैं एक प्रोजेक्ट के लिए Select2 का उपयोग कर रहा हूं। दूसरे बॉक्स में चयनित आइटम के आधार पर दूसरा चयन बॉक्स भर जाता है, जैसा कि नीचे दिए गए लिंक में दिखाया गया है। हालांकि, मैं किसी कारण से दूसरे चयन बॉक्स में पहली आइटम पर क्लिक नहीं कर सकता। अगर मैं चाहता हूं कि पहले आइटम का चयन करने का एकमात्र तरीका है, तो पहले एक अलग उपयोगकर्ता का चयन करें, और फिर पहले पर जाएं। इसे कैसे हल किया जा सकता है?AJAX भरा चयन 2 क्लिक करने योग्य नहीं

वीडियो:

enter image description here

मेरे कोड:

यह पहली सलेक्ट बॉक्स, नियमित रूप से PHP (Laravel) द्वारा भरा हो रही है। सब कुछ ठीक काम करता है।

<div class="form-group"> 
    <label for="select"> Partner: </label> 
    <select id="select" name="select" class="searchselect searchselectstyle"> 
     @foreach($partners as $i => $partner) 
      <option {{$i == 0 ? 'selected' : ''}} value="{{$partner->id}}">{{$partner->name}}</option> 
     @endforeach 
    </select> 
</div> 

त्रुटि के साथ दूसरा चयन बॉक्स यहां है। -

<div class="form-group" > 
    <label for="select2"> Hoofdgebruiker: </label> 
    <select id="select2" style="min-width: 200px;" name="select2" class="searchselect searchselectstyle"> 

    </select> 
</div> 


<script type="text/javascript"> 
$(document).ready(function(){ 
    var url = '/json/getusers'; 
    var $post = {}; 
    $post.id = $("select").val(); 

    $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: url, 
     data: $post, 
     cache: false 
    }).done(function(data){ 
       $('#select2') 
         .find('option') 
         .remove() 
         .end(); 

       $.each(data, function(i, value) { 
        console.log(data); 
        $('#select2').append($('<option>').text(value.text).attr('value', value.id)); 
       }); 
      } 
    ); 
}); 

public function getusers(){ 
    if(!isset($_POST['term'])){ 
     $users = User::where('partner_id', $_POST['id'])->get(); 
    }else{ 
     $wildcard = '%'.$_POST['term'].'%'; 
     $users = User::where('partner_id', $_POST['id'])->where('email', 'LIKE', $wildcard)->get(); 
    } 

    $array = array(); 

    foreach($users as $i => $user){ 
     $array[$i] = array("id" => $user->id, "text" => $user->email); 
    } 
    return response()->json($array); 
} 
+0

क्या आपने '$ .each' फ़ंक्शन से पहले एक रिक्त विकल्प (' ') जोड़ने का प्रयास किया है? –

+0

@ArmanOzak यह मुझे एक छोटा खाली विकल्प देता है, जैसे यहां: https://gyazo.com/17a79875dd28a43cac148f576c5eb659 – Markinson

+0

ठीक है। क्या आप अपने '