私のコントローラ取り外し機能にこのlaravelコードがあります。Laravel 5はAjaxで接続しますか?
$input = Input::all();
$product= Products::findOrFail($input['product_id']);
$product->tags()->detach($input['tag_id']);
$product= Products::where('customer_id', Auth::user()->customers_id)->get();
return view('products.tagsdelete', [
'products' => $product,
]);
これは問題なく動作し、ピボットテーブルからタグの表現を削除します。唯一のことは、自分のビューで削除ボタンを押すたびにページをリロードしたくないということです。
(もちろん私は、ユーザーが削除したいすべてのタグの選択を行うことができますが、私は、Ajaxと一緒に暮らすこれにしたい)
私の問題は、私が離脱で私を助け何かを見つけることができなかったですlaravel + Ajaxから私はJavascriptとJqueryでかなり大丈夫ですが、Ajaxはまだ私にとって新しいことです。
だから誰でも助けてくれますか?私は本当に立ち往生している。
public function detach()
{
$input = Input::all();
$product= Products::findOrFail($input['product_id']);
$product->tags()->detach($input['tag_id']);
$product= Products::where('customer_id', Auth::user()->customers_id)->get();
}
私のボタン:コードの下部に
<button type="submit" class="delete-tag-btn" data-product_id="{{ $product->id }}" data-tag_id="{{ $tag->id }}"><i class="glyphicon glyphicon-trash"></i></button>
:)
@Wiriya Rungruang
現在のコントローラコードあなたの時間を割いて
感謝JS:
<script>
$(".delete-tag-btn").on('click', function(){
var url = "{{ route('detach') }}"; // Url to deleteTag function
url += "product_id=" + $(this).data('product_id');
url += "&tag_id=" + $(this).data('tag_id');
// Now url should look like this 'http://localhost/deletetag?product_id=2&tag_id=5
// Send get request with url to your server
$.get(url, function(response){
alert("success");
});
});
</script>
私はそれを試してみましょう、いくつかの分を与えてください:) – WellNo
私はあなたの2番目のステップで少し問題があります。私はコントローラーにデータを送信するクリックイベントのようなことはしませんでした。JSとの再レンダリング/削除のようなものは私には何か新しいものです – WellNo
あなたはこのボタンを削除するべきでしょうか?