如何使用javascript和laravel将数据传递到数据库
我正在创建这个功能,用户可以喜欢一个产品,而不喜欢javascript,如果用户喜欢该产品,它应该添加到数据库中,如果用户不喜欢该产品,它应该在数据库中删除。一切正常运行,但如果我使用javascript,like按钮不起作用,或者不在数据库中添加任何东西,同样的东西适用于discussion按钮。我怎样才能使它工作(喜欢和不喜欢这个应该在数据库中也工作,而不是改变喜欢和不喜欢的图标) Javascript如何使用javascript和laravel将数据传递到数据库,javascript,php,laravel,laravel-5,Javascript,Php,Laravel,Laravel 5,我正在创建这个功能,用户可以喜欢一个产品,而不喜欢javascript,如果用户喜欢该产品,它应该添加到数据库中,如果用户不喜欢该产品,它应该在数据库中删除。一切正常运行,但如果我使用javascript,like按钮不起作用,或者不在数据库中添加任何东西,同样的东西适用于discussion按钮。我怎样才能使它工作(喜欢和不喜欢这个应该在数据库中也工作,而不是改变喜欢和不喜欢的图标) Javascript // Like product function addToFavourites
// Like product
function addToFavourites(productid, userid) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
method: 'post',
url: `/product/like/${productid}`,
data: {
'user_id': userid,
'product_id': productid,
},
success: function () {
// hide add button
$('#addfavourites' + productid).hide();
// show delete button
$('#deletefavourite' + productid).show();
},
error: function (XMLHttpRequest) {
// handle error
}
});
// Unlike product
function deleteFromFavourites(productid, userid) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
method: 'post',
url: `product/${productid}/unlike`,
data: {
'user_id': userid,
'product_id': productid,
},
success: function () {
// hide add button
$('#addfavourites' + productid).hide();
// show delete button
$('#deletefavourite' + productid).show();
},
error: function (XMLHttpRequest) {
// handle error
}
});
路线
刃锉
@if($product->isLiked)
<div id="deletefavourite{{$product->id}}"onClick="deleteFromFavourites({{$product->id}}, {{ Auth::user()->id }})"> unlike </div>
@else
<div id="addfavourites{{$product->id}}" onClick="addToFavourites({{$product->id}}, {{ Auth::user()->id }})" > like </div>
@endif
首先,您必须在网络中检查来自inspect元素的see请求和响应 这件事会让你明白这个问题。您可能对路线有问题,请
在post请求期间检查网络。首先,您必须在网络中检查see请求和来自inspect元素的响应 这件事会让你明白这个问题。您可能对路线有问题,请
在post请求期间检查网络。首先,我建议更改路由。我的意思是,对两种行为使用相同的模式:喜欢和不喜欢
Route::post('product/like/{id}', ['as' => 'product.like', 'uses' => 'LikeController@likeProduct']);
Route::post('product/unlike/{id}', 'LikeController@destroy')->name('product.unlike');
然后检查您在服务器上看到的内容,记录传入的数据。这应该有助于理解,为什么算法不起作用
其次,必须在刀片模板中渲染两个div
<div class="CLASS_SHOW_ITEM" id="deletefavourite{{$product- >id}}"onClick="deleteFromFavourites({{$product->id}}, {{ Auth::user()->id }})"> unlike </div>
<div class="CLASS_HIDE_ITEM" id="addfavourites{{$product->id}}" onClick="addToFavourites({{$product->id}}, {{ Auth::user()->id }})" > like </div>
不同于
喜欢
您必须根据属性值选择class$product->isLiked首先,我建议更改路线。我的意思是,对两种行为使用相同的模式:喜欢和不喜欢
Route::post('product/like/{id}', ['as' => 'product.like', 'uses' => 'LikeController@likeProduct']);
Route::post('product/unlike/{id}', 'LikeController@destroy')->name('product.unlike');
然后检查您在服务器上看到的内容,记录传入的数据。这应该有助于理解,为什么算法不起作用
其次,必须在刀片模板中渲染两个div
<div class="CLASS_SHOW_ITEM" id="deletefavourite{{$product- >id}}"onClick="deleteFromFavourites({{$product->id}}, {{ Auth::user()->id }})"> unlike </div>
<div class="CLASS_HIDE_ITEM" id="addfavourites{{$product->id}}" onClick="addToFavourites({{$product->id}}, {{ Auth::user()->id }})" > like </div>
不同于
喜欢
您必须按属性值选择class$product->isLiked我想您还没有完成函数的花括号检查我的代码
function addToFavourites(productid, userid) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
method: 'post',
url: `/product/like/${productid}`,
data: {
'user_id': userid,
'product_id': productid,
},
success: function () {
// hide add button
console.log($('#addfavourites' + productid));
$('#addfavourites' + productid).hide();
// show delete button
$('#deletefavourite' + productid).show();
},
error: function (XMLHttpRequest) {
// handle error
}
});
}
// Unlike product
function deleteFromFavourites(productid, userid) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
method: 'post',
url: `product/${productid}/unlike`,
data: {
'user_id': userid,
'product_id': productid,
},
success: function () {
// hide add button
console.log($('#addfavourites' + productid));
$('#addfavourites' + productid).hide();
// show delete button
$('#deletefavourite' + productid).show();
},
error: function (XMLHttpRequest) {
// handle error
}
});
}
我想你还没有完成函数的大括号检查我的代码
function addToFavourites(productid, userid) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
method: 'post',
url: `/product/like/${productid}`,
data: {
'user_id': userid,
'product_id': productid,
},
success: function () {
// hide add button
console.log($('#addfavourites' + productid));
$('#addfavourites' + productid).hide();
// show delete button
$('#deletefavourite' + productid).show();
},
error: function (XMLHttpRequest) {
// handle error
}
});
}
// Unlike product
function deleteFromFavourites(productid, userid) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
method: 'post',
url: `product/${productid}/unlike`,
data: {
'user_id': userid,
'product_id': productid,
},
success: function () {
// hide add button
console.log($('#addfavourites' + productid));
$('#addfavourites' + productid).hide();
// show delete button
$('#deletefavourite' + productid).show();
},
error: function (XMLHttpRequest) {
// handle error
}
});
}
请检查ajax调用是否正确?你是什么意思@Jinesh当您单击“喜欢”按钮时,它是否会调用ajax?当我单击“喜欢”时,我在控制台上看到此错误
1(索引):508未捕获引用错误:addToFavourites未在HtmlanchoreElement中定义。单击@Jinesh能否告诉我您的write addToFavourites在何处使用此函数?如果可能,请共享您的视图文件。是否检查ajax调用?您的意思是什么@Jinesh当您单击“喜欢”按钮时,它是否会调用ajax?当我单击“喜欢”时,我在控制台上看到此错误1(索引):508未捕获引用错误:addToFavourites未在HtmlanchoreElement中定义。单击@Jinesh能否告诉我您的write addToFavourites在何处使用此函数?如果可能,共享您的视图文件我在控制台1(索引)上看到此错误:508未捕获引用错误:HtmlanchoreElement上未定义addToFavourites。单击
@Eugene我在控制台1(索引)上看到此错误:508未捕获引用错误:addToFavourites未在HtmlanchoreElement上定义。单击
@Eugene