繁体   English   中英

提交表单并在<a>点击时</a>致电Ajax

[英]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'); <-提交数据

  1. 更改为: $("#ajax-form").submit(function(event) {

    为此: $('#yourid').click(function(){

  2. 删除“ a”元素中的onclick并添加具有所需名称的id='yourid'

当您尚未定义路由或为get方法定义了路由并且正在为post方法使用路由时,通常会发生MethodNotAllowedHttpException。 请检查您的routes.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM