2016-04-26 1 views
5

Ich möchte einige Ajax-Daten laden, nachdem Sie einen Wert aus der Dropdown-Liste in der Textbox ausgewählt haben.php - Laravel: Wie lade ich Ajax Daten nach ausgewählten Änderungen aus dem Dropdown?

Beispiel: Nach der Auswahl eines Lehrers aus dem Drop-down-Menü sollten die verbleibenden Credits des Lehrers und der credit_taken-Wert geladen werden. Wie mache ich das mit Ajax?

NB: Hier Lehrer Wert von einer anderen Drop-Down-Auswahl in 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> 

Hier ist mein Controller ausgewählt hat:

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); 
}); 

Hier ist die Ansicht Seite:

<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

Haben Sie eine Mehrfachoption ?, wie sieht der Lehrer Json aus? – madalinivascu

+0

Siehe hier Lehrer kommt aus der Abteilung Dropdown. Wenn ein Benutzer eine bestimmte Abteilung auswählt, wird die Lehrerliste in der nächsten Dropdown-Liste angezeigt, die zu dieser Abteilung gehört. Wenn ich einen Lehrer auswähle, muss ich diese bestimmten Lehrerdaten in der Textbox zeigen, die ich erwähnt habe. – User57

Antwort

7

in route.php set:

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

));

Ihr Controller: 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]); 
} 
} 

in Ajax-Skript 2 Art und Weise verwenden können: 1) absolute URL verwenden in Javascript-Code

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

2) verwenden url() mit Route

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

Sie haben vergessen, die URL zu wiederholen {{}} – madalinivascu

+0

Wie wird es die Daten an mein Textfeld credit_taken oder restant_credit in der Ansichtsseite senden? Ich frage nur, ich bin neu für Ajax! – User57

+0

Danke 'madalin Ivascu', URL: "{{url ('ajaxteach')}}" – Ehsan