Ich habe einen kleinen Dateimanager erstellt, um meine Dateien zu verwalten. Auf der einen Seite wird die Ordnerstruktur dank JsTree angezeigt. Auf der rechten Seite möchte ich, dass basierend auf dem Klick auf den linken Ordner die Dateien in diesem Ordner angezeigt wurden. Beim Klicken wird ein Ajax-Aufruf ausgeführt, der die selectFiles-Methode aufruft, um die Routen zu durchlaufen. Jetzt in der Konsole sehe ich die korrekten Daten, aber ich weiß nicht, wie man es in foreach im Blatt benutzt.So verwenden Sie variable Daten nach Ajax Call Success - Laravel
AJAX:
// chiamata Ajax per selezionare files in base all'id
$('#treeview').on("select_node.jstree", function (e, data) {
var id = data.node.id;
$.ajax({
type: 'POST',
url: 'archivio_documenti/+id+/selectFiles',
data: {id:id},
success: function(data) {
console.log('Succes!',data);
},
error : function(err) {
console.log('Error!', err);
},
});
});
DocumentiController.php:
/**
* Selzionare files in base all'id della cartella
*/
public function selectFiles(Request $request){
try{
$id = $request->id;
$files = \App\Documento::where('cartella_id',$id)->get();
return response()->json(compact('files'));
}
catch(\Exception $e){
echo json_encode($e->getMessage());
}
}
Route:
Route::post('archivio_documenti/{id}/selectFiles', '[email protected]');
Update:
@foreach($files as $key => $file)
<div id="myDIV" class="file-box">
<div class="file">
{!! Form::open(['method' => 'DELETE','route' => ['documento.destroy', $file->id]]) !!}
<button type="submit" class="#" style="background: none; border: none; color: red;">
<i class='fa fa-trash' aria-hidden='true'></i>
</button>
{!! Form::close() !!}
<a href="/documento/{{ $file->id }}/edit" class="#" role="button" style="text-align: center;"><i class='fa fa-edit' aria-hidden='true'></i></a>
<input id="myInput_{{$key}}" type="text" value="{{'project.dev/'.$file->path.'/'.$file->file}}">
<a href="#"><i class="btnFiles fa fa-files-o" aria-hidden="true" data-id="{{$key}}"></i></a>
<a href="{{' http://project.dev/'.$file->path.'/'.$file->file}}">
<span class="corner"></span>
<div class="icon">
<i class="img-responsive fa fa-{{$file->tipo_file}}" style="color:{{$file->color_file}}"></i>
</div>
<div class="file-name">
{{$file->file}}
<br>
<small>Update: {{$file->updated_at}}</small>
</div>
</a>
</div>
</div>
@endforeach
Das ist eine JavaScript-Antwort, also müssen Sie DOM manipulieren, um Ihre Ergebnisse zur Ansicht hinzuzufügen. jQuery hat Methoden wie 'append()' oder 'prepend()', die Ihnen dabei helfen können. – lesssugar
@lesssugar ist es möglich, die Dateivariable direkt in Blade zu senden? Ich habe @foreach(), die Variable $ Dateien verwenden. –
Zeigen Sie uns bitte Ihre 'foreach'. – lesssugar