以下是我的刀片布局文件中的一些代码。在我的视图中多次调用此刀片文件,如@ include.layout("刀片文件链接")。当按下按钮时,我想调用我的控制器功能。这没有AJAX。但是,当我在混合中添加AJAX时,它不起作用。
以下是刀片布局文件中的代码
<div class="element1">
<div class="text1">
<form action="{{ route("progressSheetDynamic") }}" method="post" id="addActivity">
<button type="submit" class="styleHover styleButton" name="increment" value="increment" > + </button>
<input type="hidden" name="id" value= {{ $activities}}>
</form>
{{ $count }} / {{ ($goal/5) }}
<form action="{{route("progressSheetDynamic") }}" method="post" id="removeActivity">
<button type="submit" class="styleHover styleButton" name="delete" value="delete"> - </button>
<input type="hidden" name="id" value= {{ $activities }}>
</form>
</div>
</div>
这是我的routes.php文件中的代码。
Route::post(
"progressSheetDynamic",
[
"as" => "progressSheetDynamic",
"uses" => "tableController@addDeleteActivity"
]
);
Route::get("progressSheetDynamic", "tableController@getProgressSheetDynamic");
当我按下按钮addDeleteActivity
在我的控制器中调用时,一切正常。现在,当我添加AJAX时,一切都崩溃了。
以下ajax的Javascript代码
<script>
$(document).ready(function(){
$.ajaxSetup({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
});
});
$('#addActivity').submit(function(e){
e.preventDefault();
var data = $(this).serialize();
$.post('progressSheetDynamic', data).done(function(response){
console.log(data);
});
});
$('#removeActivity').submit(function(e) {
e.preventDefault();
var data = $(this).serialize();
$.post('progressSheetDynamic', data).done(function(response){
console.log("deleting");
});
});
</script>
console.logs在两个按钮的$ .post函数内部工作。但是,控制器中的addDeleteActivity函数不再被调用。
答案 0 :(得分:0)
要确保网址相同,您可以设置相同的方式,无需使用AJAX,
试试这个:
$('#addActivity').submit(function(e){
e.preventDefault();
var data = $(this).serialize();
$.post('{{ route("progressSheetDynamic")' }}, data).done(function(response){
console.log(data);
});
});