jquery 如何将验证laravel控制器传递到sweet alert swal

a6b3iqyw  于 2023-08-04  发布在  jQuery
关注(0)|答案(2)|浏览(116)

我第一次尝试甜蜜警报。我想创建一个数据输入错误或验证列表显示在甜蜜的警报,首先我试图不填写所有的文本字段,所以结果将是一个列表的任何错误输入或不填写的文本字段,并在甜蜜的警报采样。我已经试过了,但只得到最后他的价值只是一个列表的unbending数据,请帮助我
控制器

public function simpanpegawai(Request $req)
    {
        $messages = [
            'nama.required' => 'Field Nama Gak Boleh Kosong',
            'nama.min' => 'Field nama tidak boleh kurang dari 5 kata',
            'nama.regex' => 'Field nama tidak boleh angka',
            'alamat.required' => 'Field Alamat Gak Boleh Kosong',
            'alamat.min' => 'Field alamat tidak boleh 5 kata',
            'tempat_lahir.required' => 'Field tempat lahir harus diisi !',
            'tempat_lahir.regex' => 'field Tempat lahir tidak boleh ada angka',
            'tgl_lahir.required' => 'Field Tanggal Lahir harus diisi !',
            'tgl_lahir.date' => 'Field Tanggal Lahir harus format tanggal!',
            'pendidikan_terkahir.not_in' => 'Field pendidikan terkahir Gak Boleh Kosong',
            'no_telp.required' => 'Field no telpon Gak Boleh Kosong',
            'no_telp.min' => 'Field no telpon Harus minimal 10 ',
            'jkel.not_in' => 'Field jenis kelamin harus diisi !',
            'id_jabatan.not_in' => 'Field jabatan harus diisi !',
            'status.not_in' => 'Field status harus diisi !',
            ];

        $validator = \Validator::make($req->all(), [
            'nama' => 'required|min:5|regex:/^[a-zA-Z]+(([\',. -][a-zA-Z ])?[a-zA-Z]*)*$/',
            'alamat' => 'required|min:5',
            'no_telp' => 'required|min:10',
            'tempat_lahir' => 'required|min:5|regex:/^[a-zA-Z]+(([\',. -][a-zA-Z ])?[a-zA-Z]*)*$/',
            'tgl_lahir' => 'required|date',
            'pendidikan_terkahir' => 'not_in:0',
            'jkel' => 'not_in:0',
            'id_jabatan' => 'not_in:0',
            'status' => 'not_in:0',
        ], $messages);
        if ($validator->fails()) {
            return response()->json(['errors' => $validator->errors()->all()]);
        } else {
            $user = new \App\User;
            $user->name = $req->nama;
            $user->role = $req->id_jabatan;
            $user->username = $req->nama;
            $user->password = bcrypt($req->no_telp);
            $simpan = $user->save();

            $req->request->add(['user_id' => $user->id]);
            $pegawai = \App\PegawaiModel::create($req->all());
            if ($simpan == 1) {

                $status = "Tersimpan";

            } else {
                $status = "Gagal";
            }
            echo json_encode(array("status" => $status));
        }
    }

字符串
刀片脚本中的甜蜜警报

$.ajax({
                url: url,
                type: "POST",
                data: $('#formpegawai').serialize(),
                dataType: "JSON",
                success: function (data) {
                    if (data.errors) {

                        jQuery.each(data.errors, function (key, value) {
                            swal({
                                title: "Pesan Eror",
                                text: value,
                                timer: 5000,
                                showConfirmButton: false,
                                type: "error"
                            })
                        });

                    } else {
                        swal({
                            text: data.status,
                            timer: 5000,
                            icon:"success",
                            showConfirmButton: false,
                            type: "error"
                        })
                        $('#modal_form').modal('hide');
                    }
                },
                error: function (request, status, error) {

                }
            });


图片

ngynwnxp

ngynwnxp1#

基本上,因为sweetalert在foor each中,所以现在每次循环递增时,值都会被覆盖。要解决这个问题,请移动您的甜蜜提醒后,您的循环

if(data.errors) {
    var values = '';
    jQuery.each(data.errors, function (key, value) {
         values += value
    });

    swal({
        title: "Pesan Eror",
        text: values,
        timer: 5000,
        showConfirmButton: false,
        type: "error"
    })
}

字符串

tpxzln5u

tpxzln5u2#

在你的控制器中,在给出验证规则后,尝试这样做:

if ($validator->fails()) {

       Alert::error('Error', $validator->messages()->all()[0]);
       return redirect()->back();

    }

字符串
它返回所定义的验证规则中最早遇到的错误。

相关问题