如何将数据传递给视图,并在laravel中返回response()以及ajax成功的数据

时间:2018-03-02 15:30:51

标签: php jquery laravel laravel-5

我有一个网格,其中显示所有用户。网格是由ajax创建和显示的,它有3个按钮。添加,编辑,删除。我可以添加和删除,但是因为在update.blade.php中我有用户图像(由路由和控制器显示,如:<img src="{{ route('userimage',['id' => $pass_the_id ])}}"/>,现在的问题是如何传递变量,如{{1我即将在视图刀片中使用?`,这是调出模式的代码(当编辑按钮位于用户名前面并且点击了id。我可以获得用户名,家庭等等,并在模态中显示它。但我如何将$ id传递给我上面提到的图像路线?

$pass_the_id

这是我在 $('body').delegate('#student-info #edit','click',function (e) { var id = $(this).data('id'); $.get("{{ URL::to('student/edit') }}",{id:id},function (data) { $('#frm-update').find('#id').val(data.id); $('#frm-update').find('#name').val(data.name); $('#frm-update').find('#family').val(data.family); $('#frm-update').find('#username').val(data.username); $('#frm-update').find('#birth_date').val(data.birth_date); $('#frm-update').find('#phone').val(data.cell_phone); $('#frm-update').find('#email').val(data.email); $('#frm-update').find('#gender').val(data.gender); $('#student-update').modal('show'); }) }) 代码中提到的URL::to('student/edit')上调用的laravel Controller函数:

$.get

public function edit(Request $request) { if($request->ajax()) { $contact = User::find($request->id); return response($contact); } } 期间调用的上述控制器函数的职责是根据我已经传递的id获取信息。 (我的网格已经在我创建的网格表中显示了每个用户ID。但我不知道如何将其传递给$.get

这是userimage路线正在做什么:bellow是路线:

src="{{ route('userimage',['id' => $pass_the_id ])}}"

这是它的代码:

    Route::get('userimage/{id}','ImageController@showimage')->name('userimage');

1 个答案:

答案 0 :(得分:0)

在Ajax上调用将数据传递给视图并在laravel中返回response()这是一个简单的方法,带有一个例子 -

js功能

$(document).on('change', '[name="abc_field"]', getCitiesByState);

 function yourAjaxCall() {
    var data_to_pass = $(`[name='get_data_selector']`).val();
    var $selector    = $(`[name='selector']`);
    $.ajax({
        url: route('your_route'),
        type: 'GET',
        data: {
            data: data_to_pass
        },
        dataType: "json",
        success: function success(data) {
            $selector.empty().append(data);
        },
    });
}

从ajax调用

调用控制器
public function your_route_function()
{
    $result = Abc::where('column',request('data'))->get();

    return response()->json([
        'result' => view('viewfilename.fields._option', ['options' => $result])->render(),
    ]);
}

查看路径&#34; resources \ viwes \ viewfilename \ _ fields_option.blade&#34;渲染

<option value="">{{ $defaultText or 'Select' }}</option>
@foreach($options as $value => $name)
    <option value="{{ $value }}">{{ $name }}</option>
@endforeach

希望这可以帮助您通过ajax调用来呈现视图。