我在这个问题上停留了两天。我没有一位专家使用ajax laravel。我无法从ajax将数据发送到控制器文件。如果有人请帮助我。我会很感激的。
这是路线
Route::get('/',"PostController@index");
Route::post('addpost','PostController@addpost');
这是表格
<form>
{{csrf_field()}}
<label for = "title">Title</label>
<input type = "text" name = "title"><br>
<label for = "body">Body</label>
<textarea row= "6" name = "body"></textarea><br>
<button class = "btn btn-info" name = "submit" id= "add" type = "submit" value = "submit">Add</button>
</form>
这里是jquery代码。
<script>
$(document).ready(function(){
$("#add_new_post").hide();
$("#newpost").click(function(){
$("#add_new_post").show();
$(this).hide();
});
$("form").on('#submit', function(event){
event.preventDefault();
$.ajax({
type : 'POST',
url : "{{url('/addpost')}}",
data :{
'_token': $('input[name=_token]').val(),
'title': $('input[name = title]').val(),
'body' : $('input[name = body]').val(),
},
success: function(data){
alert("Test Completed")
window.location.href = "{{('/home')}}";
},
});
});
});
</script>
这是控制器代码 数据库未获取数据。
public function addpost(Request $request){
$data=array();
$data['title'] = $request->title;
$data['body'] = $request->body;
Post::insert(array('title'=>$data['title'],'body'=>$data['body']));
}
答案 0 :(得分:0)
更新的脚本
on('submit',
或on('#submit'
?应该是on('submit',
<script>
$(document).ready(function(){
$("#add_new_post").hide();
$("#newpost").click(function(){
$("#add_new_post").show();
$(this).hide();
});
$(document).on('click', '#add', function(event){
event.preventDefault();
$.ajax({
type : 'POST',
url : "{{url('/addpost')}}",
data :{
'_token': $('input[name=_token]').val(),
'title': $('input[name = title]').val(),
'body' : $('input[name = body]').val(),
},
success: function(data){
alert("Test Completed")
window.location.href = "{{('/home')}}";
},
});
});
});
</script>
控制器
public function addpost(Request $request){
$post = new Post();
$post->title = $request->title;
$post->body = $request->body;
$post->save();
}
答案 1 :(得分:0)
请使用$(“ form”)。on('submit',function(event){}); 代替$(“ form”)。on('#submit',function(event){});
答案 2 :(得分:-1)
您的活动有误:
$("form").on('#submit', function(event){});
使用:
$("form").on('submit', function(event){});
或
$(document).on('click',"#app",function(e){e.preventDefault();//prevent submit
事件});
或使用
<button type="button"> & $(document).on('click',"#app",function(){});
还添加:$post->save();
控制器的末端