繁体   English   中英

在 Bootstrap Modal 中保存 Laravel 表单中的数据

[英]Saving Data from Laravel Form in Bootstrap Modal

我有一个引导模式对话框,它使用 laravel 表单来注册用户。

这是代码:

<div id="addPenggunaModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true">
<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="ModalLabel">Tambah Pengguna Baru</h3>
</div>
<div class="modal-body">
    {{ Form::open(array('url'=>'users/addpengguna','class'=>'form-horizontal', 'method'=> 'POST')) }}
    <ul>
        @foreach($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>

    <div class="control-group">
        <label for="firstname" class="control-label">First Name:</label>
        <div class="controls">
            {{ Form::text('firstname', null, array('class'=>'span3', 'placeholder'=>'First Name')) }}
        </div>
    </div> <!-- /field -->

    <div class="control-group">
        <label for="lastname" class="control-label">Last Name: </label>
        <div class="controls">
            {{ Form::text('lastname', null, array('class'=>'span3', 'placeholder'=>'Last Name')) }}
        </div>
    </div> <!-- /field -->


    <div class="control-group">
        <label for="email" class="control-label">Email Address: </label>
        <div class="controls">
            {{ Form::text('email', null, array('class'=>'span3', 'placeholder'=>'Email Address')) }}
        </div>
    </div> <!-- /field -->

   <div class="control-group">
        <label for="password" class="control-label">Password:</label>
        <div class="controls">
            {{ Form::password('password', array('class'=>'span3', 'placeholder'=>'Password')) }}
        </div>
    </div> <!-- /field -->

    <div class="control-group">
        <label for="confirm_password" class="control-label">Confirm Password:</label>
        <div class="controls">
            {{ Form::password('password_confirmation', array('class'=>'span3', 'placeholder'=>'Confirm Password')) }}
        </div>    
    </div> <!-- /field -->

    <div class="control-group">
        <label for="type_user" class="control-label">Tipe Pengguna:</label>
        <div class="controls">
            {{ Form::radio('level', '1');  }} Supervisor
            {{ Form::radio('level', '0');  }} Sales 
        </div>    
    </div> <!-- /field -->


    </form>
</div>
<div class="modal-footer">
    {{ Form::submit('Simpan', array('class'=>'button btn btn-primary','id'=>'mdl_save_change'))}}
    <button class="btn" data-dismiss="modal" aria-hidden="true">Batal</button>
</div>
{{ Form::close() }}
</div>

然后我使用控制器来保存详细信息:

public function postAddpengguna(){
 /* function to add user in data pengguna */
    $validator = Validator::make(Input::all(), User::$rules);
    if($validator -> passes()){
        $user = new User;
        $user->firstname = Input::get('firstname');
        $user->lastname = Input::get('lastname');
        $user->email = Input::get('email');
        $user->password = Hash::make(Input::get('password'));
        $user->level = Input::get('level');
        /* save the following details */
        $user->save();
        return Redirect::to('pengguna');
    } else {
        return Redirect::to('index');
    }
}

但表单不会将任何数据保存到数据库中。 我有另一个名为注册的页面,它可以工作。

我的问题:

  1. 如何从laravel表单提交跟踪POST,是否有任何浏览器扩展?
  2. 如何在laravel中跟踪错误日志
  3. 任何想法我的问题发生了什么?

先感谢您。

更新

这是描述其工作原理的屏幕截图。

引导模式:

引导模式

当我按下提交按钮(模式中的蓝色按钮)时,我希望它将数据保存到数据库。 php 函数如上所示。

附注。 我不使用任何 AJAX 来调用 FORM 中的值。 但是当我使用 AJAX 时,它总是出错,因为缺少 TOKEN。

您可以将此代码与您的 ajax 代码一起使用:

$(function() {
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN':  {!! json_encode(csrf_token()) !!}
        }
    });
});

首先检查表单的action_token字段。 要在表单中添加令牌字段,您应该在表单中包含以下行:

<input type="hidden" name="_token" value="{{csrf_token()}}">

要在您的项目中重新使用引导模式,您可以查看此Github链接

在最新版本的 laravel 5 中,您可以使用快捷方式来获取令牌字段。

<form ... >
  {!! csrf_field() !!}
</form>

在这种情况下,你会得到类似的东西

<input type="hidden" name="_token" value="hpyL7cUbCMFBGRfCi2dpzE5XHGj8WuyY2jqloKRx">

在任何情况下,您都可以获取调用csrf_token()的令牌字符串,但老实说,我更喜欢csrf_field()替代方案。

暂无
暂无

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

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