Ajax表单内容并使用Laravel插入到DB中..

时间:2018-02-15 22:31:04

标签: ajax laravel-5

我使用AJAX创建了一个表单,因为我有几个关于字段的替代方案。

我的javascript中有正确的信息并进行测试......我的第一个选择使用以下函数并生成表单

function setParentSector() {
    $("#listSectors").html("");
    $("#createSector").html("");

    if($('#langname option:selected').val() !=0) {
        var obj = { 'id': $('#langname option:selected').val() };
        if (obj['id'] != 1) {
            ajaxSectors(obj);
        }
        else
        {
            // another form generated here ... 
            $('#createSector').append("something else");
        }
    }
};

我使用" classic" ajax ..

function ajaxSectors(objSetParent) {  
    $.ajax({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        url: '/admin/ajax/sectorParent',
        type: 'post',
        dataType: 'json',
        async: true,
        success: function (result) {

            $('#listSectors').append("<label for='langname'>label </label> " +
                "<select class='form-control m-input m-input--air' id='sectors' onclick='setLangTranslation()'>" +
                "<option value='0' selected>Select value</option></select>" +
                "<span class='m-form__help' id='existsAlready'>");
            var count = result.length;
            for (var i = 0; i < count; i++) {
            if (result[i].deleted_at === null) {
                $('#sectors').append("<option value='" + result[i].sector_id  + "'>" + result[i].sectname + "</option>");
                }
                else {
                    console.log("peanuts");
                }

            }
        },
        data:objSetParent,
        error: function (result) {
        },
        complete: function (result) {
        //console.log("complete");
        }
    });
}

这部分代码工作正常,我显示我想要的... 当我想保存到DB表单时,我打算使用store方法并创建$ request-&gt; validate()

在商店方法中我有:

$request->validate([
    'admin' => 'required',
    'langname'  => 'required',
    'sectname' => 'required',
    'sectshortname' => 'nullable',
 ]);

 return view ('test')

测试视图只是为了查看我发布的内容..

如果我保留验证部分,页面只是刷新并且未经过验证... 如果没有请求验证,我会显示视图,我只看到带有令牌的输入值。

感谢您的回答。我们希望我的问题是&#34;清楚&#34;足够

1 个答案:

答案 0 :(得分:0)

使用此代码我希望此代码适合您,请使用此Use Validator;

   $rules = [
    'admin' => 'required',
    'langname'  => 'required',
    'sectname' => 'required',
    'sectshortname' => 'nullable',
   ];

   $data = $request->all();//or you can get it by one by one
   $validator = Validator::make($data , $rules);
   if ($validator->fails()) {
        $error=[];

        $errors = $validator->messages();

        foreach($errors->all() as $error_msg){
            $error[]= $error_msg;
        }           
        return response()->json(compact('error'),401);
    }
   return view ('test')