[英]Submit form and call Ajax on <a> click
我想使用Ajax向数据库添加一些东西。 我有一个提交表单的链接,然后Ajax调用应该起作用,但事实并非如此。 我在不同页面上使用了相同的Ajax调用,但是以这种形式,我使用的是类型为Submit的简单按钮。 但是在此页面上,我想提交...
这是表格
{!! Form::open(['id' => 'ajax-form', 'style' => 'float:right']) !!}
<input type="hidden" name = "idUser" id="idUser" value="{{Auth::user()->id}}">
<input type="hidden" name = "idCampaign" id="idCampaign" value="{{$campaign->id}}">
<a class="fa fa-bookmark fa-2x" onclick="document.getElementById('ajax-form').submit();" aria-hidden="true" href="javascript:{}" style="color:#fd8809"></a>
{!! Form::close() !!}
这是Ajax:
$("#ajax-form").submit(function(event) {
event.preventDefault();
var form = $(this);
$.ajax({
type: "post",
url: "{{ url('addFavorites') }}",
dataType: "json",
data: form.serialize(),
success: function(data){
if(data.status == 'failedd'){
swal("Error!", "You have already added this campaign to favorites! If you want to remove it, go to your Favorites list page", "error")
}
else{
swal("Success!", "You added the campaign "+ data.idCampaign + " to favorites!", "success")
}
},
error: function(data){
swal("Error!", "error")
},
complete: function (data) {
}
});
});
当我单击此链接时,它会将我重定向到另一个引发页面: MethodNotAllowedHttpException
。
将您的ajax网址更改为:
url: '/addFavorites',
和您的路线:
Route::post('/addFavorites', 'SearchController@addFavorites');
只是确保您指向相同的网址
编辑:
确保使用get路由,使用post路由。 看下面:
路线:: get('/ addFavorites','SearchController @ loadFavorites'); <-加载页面
路线:: post('/ addFavorites','SearchController @ submitFavorites'); <-提交数据
更改为: $("#ajax-form").submit(function(event) {
为此: $('#yourid').click(function(){
删除“ a”元素中的onclick并添加具有所需名称的id='yourid'
。
当您尚未定义路由或为get方法定义了路由并且正在为post方法使用路由时,通常会发生MethodNotAllowedHttpException。 请检查您的routes.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.