Как добавить ошибку проверки формы в Bootstrap модальной - PullRequest
0 голосов
/ 10 июня 2019

Я хочу отобразить ошибку проверки формы в модале Bootstrap (ниже полей ввода), я делал это ранее, но теперь, поскольку я использую ajax для отправки данных, у меня возникают проблемы при отображении ошибки проверки.

Пожалуйста, помогите.Заранее спасибо

**View**

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
            <form id="myform">
            <div class="modal-body">
            <?php echo validation_errors(); ?>
               <input class="form-control" type="text" name="user_name" id="user_name">
                <input class="form-control" type="text" name="name" id="name">
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                <button type="submit" class="btn btn-primary" id="add">Save changes</button>
            </div>
            </form>
        </div>
    </div>
</div>

<script>
    $(document).ready(function () {
        $(document).on('submit','#myform',function(event){
            event.preventDefault();
            let name=$("#name").val();
            let user_name=$("#user_name").val();
             $.ajax({
                    url:"<?php echo base_url(). 'welcome/add_data';?>",
                    method: 'POST',
                    data:new FormData(this),
                    contentType:false,
                    processData:false,
                    success:function (data) {
                        alert(data);
                        $('#myform')[0].reset();
                        $('#myModal').modal('hide');
                       location.reload();
                    }
                });
        })
    })
</script>

**Controller**

public function add_data(){
        $this->form_validation->set_rules('name', 'Name', 'required');
        $this->form_validation->set_rules('user_name', 'User Name', 'required');
        if ($this->form_validation->run() == FALSE) {
            $this->load->view('main_view');
        }
        else {
            $data=array(
                'name'=>$this->input->post('name'),
                'user_name'=>$this->input->post('user_name'),
            );
            $this->Test_model->add_data($data);
            redirect('welcome',"refresh");
        }
}

1 Ответ

0 голосов
/ 11 июня 2019

Если ваша проверка ложна, вы хотите вернуть объект json с ошибками проверки:

$response['errors'] = $this->form_validation->error_array();
header('Content-Type: application/json');
echo json_encode($response);

Теперь вы получите этот объект ответа при успешном выполнении ajax с массивом ошибок проверки, затем вы можете выполнить цикл по этому массиву и отобразить ошибку, как хотите.

$.each(data.errors, function(index, error) {
    alert(error);    // or maybe display it in a bootstrap alert
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...