2017-09-19 1 views
-2

Ich habe einen modalen Pop-out, wenn Sie eine Taste drücken. Problem ist, wie übergibt man den Wert an das Modal?Laravel, übergeben Sie den Wert beim Drücken der Taste

Meine Tabelle wie in der Abbildung unten gezeigt. Wie Sie sehen können, hat jede Zeile eine andere ID. Ich wollte die ID einer bestimmten Reihe nach auf die Schaltfläche

enter image description here

meinen Code gedrückt bekommen:

@foreach($company as $cmp) 
<tr> 
    <td>{{ $cmp->number }}</td> 
    <td>{{ $cmp->name}}</td> 
    <td> <a type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" </td 
</tr> 

@endforeach 
+0

warum die downvote? – begineeeerrrr

Antwort

0

Sie benötigen Schleife zu der Modal, sondern in einer separaten Ansicht, die id muss von Ihrem $cmpvar aufgerufen werden, um den HTML id des modalen und des Auslöserknopfes dynamisch zuzuweisen:

@foreach($company as $cmp) 
<tr> 
    <td>{{ $cmp->number }}</td> 
    <td>{{ $cmp->name}}</td> 
    <td> <a type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#modal{{$cmp->id}}" </td 
</tr> 
@include('path.modal')//Path of the view of a modal 
@endforeach 

In einer separaten Ansicht:

<!-- modal.blade.php --> 
<div class="modal fade" id="modal{{$cmp->id}}"role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
     ... 
     </div> 
    </div> 
</div> 
+0

Ich folgte genau, was Sie gepostet, es scheint, dass mein Modal nicht zeigt – begineeeerrrr

+0

Überprüfen Sie Ihre modale Ansicht Datei, dies funktioniert, wenn Ihre $ cmp var eine ID hat –

+0

Überprüfen Sie auch mit inspect Element in Ihrem Browser, wenn Sie mehrere Modale –

0

Ich nehme an, Sie Bootstrap für Ihre Layouts verwenden. Documentation schlägt vor, dass Sie data- Attribute binden, um Werte an Ihr Modal zu übergeben. Sie können jQuery verwenden, um das Ereignis show.bs.modal dafür zu behandeln.

Sie sollten Ihrer Schaltfläche einen eindeutigen Bezeichner hinzufügen. Zum Beispiel data-modal-id. Wie folgt aus:

@foreach($company as $cmp) 
<tr> 
    <td>{{ $cmp->number }}</td> 
    <td>{{ $cmp->name }}</td> 
    <td> 
     <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" data-modal-id="{{ $cmp->number }}">Button</button> 
    </td> 
</tr> 
@endforeach 

Und in Ihrem javascript:

$('#myModal').on('show.bs.modal', function (event) { 
    var button = $(event.relatedTarget); 
    var modal_id = button.data('modal-id');; 
    var modal = $(this); 
    // do whatever you want with your modal and modal_id 
}); 
+0

haben Gibt es einen alternativen Weg ohne Javascript? – begineeeerrrr

+0

Sie könnten für jede Schaltfläche unterschiedliche Modalitäten mit eindeutigen IDs erstellen, die entsprechende 'data-target'-Attribute hätten. Aber ich denke, das ist nicht der beste Ansatz. –

Verwandte Themen