2016-04-30 10 views
0

Ich habe ein Ereignis und ich möchte Künstler aus der Tabelle Künstler hinzufügen. Ich möchte dies tun, indem ich eine Dropdown-Liste verwende, in der der Name des Künstlers eingegeben werden muss und neben dem ein kleines "+" steht, um andere Künstler hinzuzufügen. Danach wird eine 3. transitive Tabelle mit der Event-ID und der Künstler-ID als Fremdschlüssel eingefügt. Als ich das Ereignislaravel 5.2 dynamische Dropdown-Liste

Meiner Ansicht erstellen:

<div class="form-group"> 
<label for="task-artist" class="col-sm-3 control-label">Artist:</label> 
<div class="col-sm-6"> 
    <select name="artist" id="artist" class="form-control input-sm"> 
    <option value=""></option> 
     @foreach($artists as $artist) 
      {{$artist->stage_name}} 
     @endforeach 
    </select> 
</div> 
</div> 

mein Controller:

public function index(Request $request) 
    { 
     return view('tasks.index', [ 
      'tasks' => $this->tasks->forUser($request->user()), 
      'artists' => DB::table('artists')->pluck('stage_name', 'id'), 
     ]); 
    } 

    public function show($id) 
    { 
     //Get results by targeting id 
     $task = Task::find($id); 
     //$artist = Artist::lists('stage_name', 'id'); 
     //$artist = Artist::where('active', true)->orderBy('stage_name')->pluck('stage_name', 'id'); 
     // 
     return view('tasks.show')->with('task',$task); 
    } 

Wie soll ich vorgehen? Bitte helfen.

Antwort

2

Javascript ist dein Freund hier.

Lassen Sie mich einige Schritte schreiben, die Sie folgen können, zu erreichen, was Sie suchen:

1) Haben die Div-Tag und

2) verwenden $ .get() Funktion in Javascript, die bekommen dynamische Werte von einem Controller.

3) $ .each(), um eine Schleife durch die Daten und es in ausgewähltem Eingabefeld zeigt auf

4) entweder den Wert oder Klicken + Taste auswählen, die Sie eine anderer Javascript Aufruf erwähnt hat die Künstler in dem das Ereignis.

Beispiel:

HTML 
<div class="uk-margin-bottom"> 
    <div id="your select dropdown"></div> 
</div> 

JAVASCRIPT 
$("#artist").change(function() { 
    getArtists(); 
}); 

    function getArtist() { 
    var artist= $('#your div id'); 
    artist.empty(); 
    var code = ''; 
    $.get("/url/" + variable_id, function(data) { 
     artist.empty(); 
     console.log(data);// once you create route and controller you should see your artists lists here 

     code += '<label for="event_id" class="uk-form-label">Select Artist</label><select class="uk-width-1-1" name="artist_name" id="artist_name" value="select">'; 
     code += '<option value="">Select Artists</option>'; 
     $.each(data.artist, function(index, value) { 

      code += '<option value="' + value.artist_name+ '">' + value.artist_name + '</option>'; 
     }); 
     code += '</select> 
     artist.append(code); 

    }); 
} 

hat ein Formular, und javascript Künstler an die Steuerung und Speicherung von Daten in Ereignistabelle zu schreiben. Versuchen Sie und sehen Sie, ob Sie meine Schritte erreichen und folgen können.