【问题标题】:Toggle button value in controller using ajax使用ajax切换控制器中的按钮值
【发布时间】:2020-12-05 04:33:32
【问题描述】:

我正在使用 Laravel 7 和 PHP 7.4。

我有一个包含 20 个字段的表单。我正在尝试为我的一个字段实现切换按钮。我的逻辑很简单。我有一个隐藏的输入字段来获取单击切换的值。它工作正常,但是当我尝试使用 ajax 将切换值传递给我的控制器时,它给了我一个类似的错误

jquery.min.js:2 Uncaught RangeError: Maximum call stack size exceeded

可能是,调用ajax的方法不对。 如何将切换值输入到控制器中?

刀片

<form method="POST" action="{{route('form_for_private_sellers')}}">
    <div class="select form-group">
        <input type="number" name="mileage" placeholder="10,000 (☒km - ☐Mi)" class="value-input" />
        <input type="hidden" class="currency-input" />
              
    <div class="currency-list switch">
         <input type="checkbox" data-width="100%" class="input-lg" name="mileage" id="mileage" checked />
          <input type="hidden" name="hidden_mileage" id="hidden_mileage" value="km" />
   </div>
</div>

</form>

JavaScript

$('#mileage').bootstrapToggle({
    on: 'km',
    off: 'miles',
    onstyle: 'success',
    offstyle: 'success',
});

$('#mileage').change(function(e){
    e.preventDefault();
    if($(this).prop('checked'))
    {
      var km =  $('#hidden_mileage').val('km');
    }
    else
    {
      var miles =  $('#hidden_mileage').val('miles');
    }

        var _token = $('input[name="_token"]').val();

        $.ajax({
            url:"{{ route('form_for_private_sellers') }}",
            method:"POST",
            data:{_token:_token,km:km,miles:miles},
            success:function(data){
                if(data == 'done')
                {
                    console.log('hello');
                }
            }
        });
});

控制器

public function process_private_sellers(Request $request)
{

    $mile = $request->get('miles');
    dd($mile);
}

【问题讨论】:

    标签: javascript php laravel laravel-7


    【解决方案1】:

    我不知道这是否是最好的方法。但是我用 serialize() 更新了 ajax 调用,我的问题得到了解决

    var _token = $('input[name="_token"]').val();
    var form_data = $(this).serialize();
    
    $.ajax({
        url:"{{ route('form_for_private_sellers') }}",
        method:"POST",
        data:{_token:_token,form_data:form_data},
        success:function(data){
            if(data == 'done')
            {
                console.log('hello');
            }
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      相关资源
      最近更新 更多