Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript和laravel将数据传递到数据库_Javascript_Php_Laravel_Laravel 5 - Fatal编程技术网

如何使用javascript和laravel将数据传递到数据库

如何使用javascript和laravel将数据传递到数据库,javascript,php,laravel,laravel-5,Javascript,Php,Laravel,Laravel 5,我正在创建这个功能,用户可以喜欢一个产品,而不喜欢javascript,如果用户喜欢该产品,它应该添加到数据库中,如果用户不喜欢该产品,它应该在数据库中删除。一切正常运行,但如果我使用javascript,like按钮不起作用,或者不在数据库中添加任何东西,同样的东西适用于discussion按钮。我怎样才能使它工作(喜欢和不喜欢这个应该在数据库中也工作,而不是改变喜欢和不喜欢的图标) Javascript // Like product function addToFavourites

我正在创建这个功能,用户可以喜欢一个产品,而不喜欢javascript,如果用户喜欢该产品,它应该添加到数据库中,如果用户不喜欢该产品,它应该在数据库中删除。一切正常运行,但如果我使用javascript,like按钮不起作用,或者不在数据库中添加任何东西,同样的东西适用于discussion按钮。我怎样才能使它工作(喜欢和不喜欢这个应该在数据库中也工作,而不是改变喜欢和不喜欢的图标)

Javascript

  // 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