Php 如何使用Laravel中的return response()将数据与ajax成功的数据一起传递给视图
我有一个显示所有用户的网格。网格是由ajax创建和显示的,它有3个按钮:添加、编辑、删除。我可以添加和删除,但由于在update.blade.php中我有一个用户图像(由一个路由和控制器显示,如:Php 如何使用Laravel中的return response()将数据与ajax成功的数据一起传递给视图,php,jquery,laravel,laravel-5,Php,Jquery,Laravel,Laravel 5,我有一个显示所有用户的网格。网格是由ajax创建和显示的,它有3个按钮:添加、编辑、删除。我可以添加和删除,但由于在update.blade.php中我有一个用户图像(由一个路由和控制器显示,如:$pass\u the\u id])}”/>,现在的问题是如何传递我将要在视图blade中使用的变量,如$pass\u the\u id 这是打开模式的代码(当单击用户名和id前面的编辑按钮时)。我可以获取用户名、家庭等信息并在模式中显示,但是如何将$id传递到上面提到的图像路由 $('body
$pass\u the\u id])}”/>
,现在的问题是如何传递我将要在视图blade中使用的变量,如$pass\u the\u id
这是打开模式的代码(当单击用户名和id前面的编辑按钮时)。我可以获取用户名、家庭等信息并在模式中显示,但是如何将$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控制器函数。get
code:
public function edit(Request $request) {
if($request->ajax()) {
$contact = User::find($request->id);
return response($contact);
}
}
上面的控制器函数在$期间调用。get
的职责是根据我传递的id获取信息。(我的网格已经在我创建的网格表中显示了每个用户id。但是我不知道如何将其传递给src=“{route('userimage',['id'=>$pass\u the\u id])}
以下是userimage route正在执行的操作:以下是路由:
Route::get('userimage/{id}','ImageController@showimage')->name('userimage');
这是它的代码:
public function showimage($id) {
if(UserImages::selectuserimage($id) !== null) {
$imageData = UserImages::selectuserimage($id);
$info = $info = base64_decode($imageData);
$img = Imgs::make($info);
$img->encode('jpg',80);
return $img;
}
else return public_path('images/Atehran.jpg');
}
在Ajax成功调用时,使用laravel中的return 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(),
]);
}
查看要渲染的路径“resources\viwes\viewfilename\fields\u option.blade”
<option value="">{{ $defaultText or 'Select' }}</option>
@foreach($options as $value => $name)
<option value="{{ $value }}">{{ $name }}</option>
@endforeach
{{$defaultText或'Select'}
@foreach($value=>$name的选项)
{{$name}
@endforeach
希望这将有助于您通过ajax调用呈现视图。如果对您来说有任何歧义,请告诉我,或提供更多信息。您能用更少的文字进一步解释吗pls@AchrafKhouadja您好,谢谢您的回复。问题很简单,我如何将用户id传递给我的视图(请注意,我使用的控制器已经将
$contact
数据返回给ajax成功(我用它填充模式弹出窗口中的值,在同一个控制器中,我希望将id返回给我的视图,以了解如何使用return response()将数据传递给视图)在laravel中,以及ajax成功的数据请让我理解,我不明白,例如,data.name有效吗?