#ajax #laravel
#ajax #laravel
Вопрос:
Я пытаюсь отправить user slug на мой контроллер laravel, и он не работает, вот мой html-код :
<a class="card" onclick="chat_send($data = '{{$user->slug}}');">
вот мой скрипт :
function chat_send(){
var data = $data;
var action_url = '{{ route('chat.show','data')}}';
$.ajax({
type : "POST",
url : action_url,
data : {data:data},
dataType : "json",
success:function(data){
if(data.errors){
alert('Message Field is Empty.');
}
if(data.success){
alert('Success');
}
}
});
};
код контроллера :
public function show(Request $request)
{
$slug = $request->get('data');
return view('chat',compact('slug'));
// return view('test');
}
это ошибка, которую я получил :
Журнал консоли
Комментарии:
1. Добро пожаловать в SO… вы знаете JavaScript?
2. данные должны передаваться следующим образом в ajax data: {data:data} и в контроллере Laravel catch как post
3. нет, я не знаю JS, я только начал учиться
4. я отредактировал данные в {data:data}, которые все еще не работают
Ответ №1:
Просто сделайте, и эта ошибка будет устранена.
<a class="card" onclick="chat_send('{{$user->slug}}');">
И в скрипте:
function chat_send(data){
var action_url = '{{ route('chat.show','data')}}';
$.ajax({
type : "POST",
url : action_url,
data : {data:data},
dataType : "json",
success:function(data){
if(data.errors){
alert('Message Field is Empty.');
}
if(data.success){
alert('Success');
}
}
});
};
Ответ №2:
попробуйте, как показано ниже:
<a class="card" id="card" data = '{{$user->slug}}'>
Используйте jQuery для отправки ajax:
$(document).ready(function(){
$('#card').click(function(){
var data = $(this).attr(data)
var action_url = '{{ route('chat.show','data')}}';
$.ajax({
type : "POST",
url : action_url,
data : {data:data},
dataType : "json",
success:function(data){
if(data.errors){
alert('Message Field is Empty.');
}
if(data.success){
alert('Success');
}
}
});
};
})
})