我在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
,然后将其重定向回来。
如何在后台将所有这些数据发送到我的控制器?
对此的任何提示/建议都将是一个巨大的帮助!
答案 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');
}