У меня здесь проблема. Я пытаюсь отправить конкретную дату на контроллер (чтобы создать предложение where и отправить его обратно в представление), но я думаю, что это даже не требуется с контроллером, поскольку вы также можете поместить предложение where в представление.
Однако обе части для меня как бы невозможны, все перепробовал, но безрезультатно.
мой код ajax / view ...
$('.dates').click(function(){
var date = $(this).attr('value');
$.ajax({
type: 'GET',
data: {
date: date
},
success: function(data){
console.info(data.data);
},
error: function(xhr){
console.info(xhr.responseText);
}
});
});
console.info(data.data); работает, он выводит дату дня щелчка, и мне нужен этот вывод (из JS) в Laravel (PHP) where, чтобы получить данные из базы данных.
мой код контроллера ...
public function rooster(Request $request)
{
$currentUser = Auth::user();
$schedules = Schedule::all();
$data = $request->date;
if ($data){
return response()->json(['msg'=>'Updated Successfully', 'success'=>true, 'data'=>$data]);
}
$dataa = $data;
return view('pages.klant.rooster')->withDataa($dataa)->withSchedules($schedules);
}
мой маршрут:
Route::get('klant/rooster', 'KlantController@rooster');
Route::get('klant/kalender', 'KlantController@getData');
а затем, на мой взгляд, у меня есть что-то вроде этого, но, очевидно, это не работает, поскольку переменная не отправляется ... (без ошибок)
@foreach ($schedules->where('datum', $dataa) as $value)
{{ $value->user->name }}
@endforeach
Я надеюсь, что здесь мне кто-нибудь поможет ...
Примечание: у меня нет такого хорошего опыта в JSON / AJAX / Laravel, я новичок.






Во-первых, в вашем запросе AJAX вы не указали route (или URL-адрес) для отправки данных:
$.ajax({
type: 'GET',
url: '/rooster/filter',
data: {
date: date
},
success: function(data){
console.info(data.data);
},
error: function(xhr){
console.info(xhr.responseText);
}
});
Вам нужно будет добавить route в ваш файл routes/web.php. Что-то вроде:
Route::get('/rooster/filter', 'MyController@rooster');
Во-вторых, в вашем методе rooster вы должны передавать обратно JSON
return response()->json([
'data' => $data,
'schedules' => $schedules
]);
Если метод rooster не тот, которому вы должны отправлять запрос AJAX, просто убедитесь, что метод, к которому он должен перейти, возвращает ответ JSON.
Затем вам нужно будет использовать JS для обновления представления, используя response, указанный в
success: function(data){
console.info(data.data);
console.info(data.schedules);
},
Возможно, используйте шаблоны на основе JS, такие как https://github.com/janl/mustache.js/
вам не хватает параметра url для ajax.
Для подсказок: вы можете создать новое представление, имеющее вашу html-логику с предложением where, и включить его в главное представление ... и отобразить его с помощью view('your-view-path')->render() внутри вашего петух(). А также
Не стесняйтесь спрашивать что угодно .. ура.
Я совершенно не знаю, как мне это делать, я много раз пробовал render () в одном и том же виде, но это не сработало.
но проблема не в этом, я хочу использовать эту переменную в моем предложении laravel where (от js до laravel) idk how.
@Swiggity вы указали URL-адрес для запроса ajax?
да, я добавил его сейчас, но, как я уже сказал, работает ajax / laravel, из ajax он отправляет дату в контроллер, возвращает ее в представление и выводит правильную дату. Я хочу использовать эту дату в предложении where, это моя единственная проблема, и я совершенно не знаю, как это сделать. Пробовал с jquery, но застрял в отношениях с базой данных (не знаю, как сделать user_id-> user-> name в json ...)
Сделайте свою часть в контроллере и визуализируйте ее для просмотра
$('.butto').click(function(){
var date = $(this).attr("data-id");
//var date = $(this).attr('value');
$.ajax({
url: '/ajax/GetContent',
data: { date: date },
type: "GET",
success: function(data){ $data = $(data);
$('#clear').hide().html($data).show();
}
});
});
//controller
public function index3(Request $request){
//$search = 'fffffffff';
//$search = $request->date;
// $search = $request->input('search');
$user = Auth::user();
$id = $request->date;
//$search = moneyuser::where($where)->first();
$search = moneyuser::where('name', $user->name)->where('email', $user->email)->where('id', $id)->paginate(3);
return view('student.lis')->with('search', $search);
}
// Rout
// change Page by Ajax
Route::get('/ajax/GetContent', array(
'uses' => 'StudentController@index3'
));
<a data-id = "{{ $student->id }}" class = "btn btn-primary butto">view</a>Пожалуйста, отредактируйте и добавьте текстовое объяснение, а не только код.
Как я уже сказал, часть javascript / ajax работает, сообщение об успешном завершении выводится в консоль, я не использовал URL-адрес, потому что в моем маршруте он у меня уже есть, мне нужно получить переменную даты в представлении для извлечения данных из база данных.......