2016-04-26 19 views
5

Chcę załadować niektóre dane ajax po wybraniu wartości z rozwijanej w polu tekstowym.php - Laravel: jak załadować dane Ajax po wybranych zmianach z listy rozwijanej?

Np .: Po wybraniu nauczyciela z rozwijanego menu należy wczytać pozostały kredyt dla nauczyciela i wartość kredytu_kredytowego. Jak zrobić to z ajaxem?

UWAGA: Tutaj wartość nauczyciel został wybrany z innego wyborze rozwijanej w Ajax

<script> 
     $('#teacher').on('change',function(e){    
      var teach_id = $('#teacher option:selected').attr('value'); 

      var info=$.get("{{url('ajax-teach')}}",{teach_id:teach_id}); 
       info.done(function(data){  
        $.each(data,function(index,subcatObj){ 

       /// Here will be the loaded code /// 

        });      
     }); 

     info.fail(function(){ 
      alert('ok'); 
     }); 
     }); 
    </script> 

Oto mój kontroler:

Route::get('ajax-teach',function(Request $request){ 
     $teach_id = $request::input(['teach_id']);   
     $teachers=\App\Teacher::where('teacher_id','=',$teach_id)->get(); 
     return Response::json($teachers); 
}); 

Oto wyświetleń:

<div class="form-group"> 
    <label for="">Teacher</label> 
    <select class="form-control input-sm" required name="teacher_id" id="teacher" > 
    <option value=""></option> 
    </select> 
</div> 


<div class="form-group"> 
    <label>Credit to be Taken</label>   
    <input type="text" name="credit_taken" id="credit_taken" class="form-control" required placeholder="Credit to be Taken"> 
</div> 

<div class="form-group"> 
    <label>Remaining Credit</label>   
    <input type="text" name="remaining_credit" class="form-control" required placeholder="Remaining Credit"> 
</div> 
+0

czy masz wybór wielu opcji?, Jak wygląda nauczyciel json? – madalinivascu

+0

Zobacz tutaj Nauczyciel pochodzi z listy departamentów. Gdy użytkownik wybierze określony dział, lista nauczycieli zostanie wyświetlona w następnym menu rozwijanym, które należy do tego działu. Kiedy wybieram nauczyciela, muszę pokazać dane konkretnego nauczyciela w tym polu tekstowym, o którym wspomniałem. – User57

Odpowiedz

7

w route.php zestawie:

Route::get('/ajaxteach', array(
'as' => 'ajaxteach', 
'uses' => '[email protected]_teach' 

));

kontroler: TeachController.php

class TeachController extends Controller 
{ 
public function get_teach(Illuminate\Http\Request $request) 
{ 
    $teach_id = $request->get('teach_id');   
    $teachers=\App\Teacher::where('teacher_id','=',$dept_id)->get(); 
    return response()->json(['response' => '$teachers]); 
} 
} 

w Ajax skryptu można użyć 2 sposób: 1) Użyj bezwzględny adres URL w javascript kod

var base_url = 'http://localhost/laravel' 
$.ajax({ 
       type: "GET", 
       url : base_url+"/ajaxteach", 
       data : dataString, 
       success : function(data){ 
        console.log(data); 
       } 

2) Za pomocą adresu URL() z trasy

 $.ajax({ 
       type: "POST", 
       url : "{{url('ajaxteach')}}", 
       data : dataString, 
       success : function(data){ 
        console.log(data); 
       } 
+0

zapomniałeś echo adresu URL {{}} – madalinivascu

+0

W jaki sposób prześle on dane do mojego pola tekstowego credit_taken lub pola tekstowego pozostało_credit na stronie widoku? Po prostu pytam, czy jestem nowy w Ajax! – User57

+0

dziękuję 'madalin ivascu', url: "{{url ('ajaxteach')}}" – Ehsan

Powiązane problemy