在不刷新页面的情况下进行PUT

时间:2015-12-08 18:39:10

标签: php laravel laravel-5 laravel-5.1

我在Laravel中有一个刀片形式

{!! Form::open(array('url' => '/'.$cpe_mac.'/device/'.$device_mac.'/update', 'class' => 'form-horizontal', 'role' =>'form','method' => 'PUT')) !!}

        <span class="pull-left">
            <div class="col-sm-6">
                <p>Downlink </p>
                <select type="text" class="form-control" name="max_down" >
                    @foreach ($rate_limit as $key => $value)
                    <option value="{{$value or ''}}">{{$value or ''}} Kbps</option>
                    @endforeach
                </select>
            </div>
            <div class="col-sm-6">
                <p>Uplink</p>
                <select type="text" class="form-control" name="max_up" >
                    @foreach ($rate_limit as $key => $value)
                    <option value="{{$value or ''}}">{{$value or ''}} Kbps</option>
                    @endforeach
                </select>
            </div>
        </span><br>


        {!! Form::hidden('cpe_mac', $cpe_mac)!!}
        {!! Form::hidden('device_mac', $device_mac)!!}



        <span class="pull-right">
            <button class="saveRateLimitBTN btn btn-xs btn-info pull-right">Save</button>
        </span>


{!! Form::close();!!}

我想在不刷新页面的情况下制作Ajax HTTP PUT。 我的表格应该怎么样?

现在,它一直将我重定向到url/update,然后将其重定向回来。

如何在后台将所有这些数据发送到我的控制器?

对此的任何提示/建议都将是一个巨大的帮助!

1 个答案:

答案 0 :(得分:1)

通常我将表单放在一个模态弹出窗口中,并带有一个数据关闭按钮,只需在您点击提交并在后台运行所有内容后关闭它。

对于你的情况,在点击提交按钮后点击提交而不刷新页面似乎有点奇怪不会吗?

然而,这里有一些jQuery让你走向:

$("#mySubmitButton").on('click', function(event){

    var form = '#myForm';

  $.post($(form).attr('action'),$(form).serialize());

});

在表单中添加ID:

{!! Form::open(array('url' => '/'.$cpe_mac.'/device/'.$device_mac.'/update', 'class' => 'form-horizontal', 'role' =>'form','method' => 'PUT', 'id' => 'myForm')) !!}

为您的按钮添加ID:

<button id="mySubmitButton" class="saveRateLimitBTN btn btn-xs btn-info pull-right">Save</button>

为您的按钮添加一个TYPE(以防止它提交/刷新);

<button type="button" id="mySubmitButton" class="saveRateLimitBTN btn btn-xs btn-info pull-right">Save</button>

如果您的路线已正确设置为通向您的控制器,那么现在可以通过$ request或输入访问所有表单输入变量:

public function processForm(Request $request)
{
    $variable1 = $request->input('myforminputname1');
    $variable2 = $request->input('myforminputname2');

    // Or get it through Input
    $variable1 = \Input::get('myforminputname1');
    $variable2 = \Input::get('myforminputname2');
}