CodeIgniter Forums

Full Version: CodeIgniter AJAX JSON validator with form validation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am trying to make AJAX form validation work in CodeIgniter.
If you have the same title don't add The data from the form always reports as successful, even if the result is negative.
Is there a mistake in my logic?
[font=Arial,][b]Save controller:[/b][/font]
Code:
public function save(){
     $options = array();
                $data['title']              = $this->input->post('title');
                $data['description']        = $this->input->post('description');
                $data['sale_price']         = $this->input->post('sale_price');
                $data['purchase_price']     = $this->input->post('purchase_price');
                $data['add_timestamp']      = time();

               $data['options']            = json_encode($options);

            $this->form_validation->set_rules("title", "Title", "required|trim|is_unique[product.title]");
            $this->form_validation->set_rules("description", "Description", "required|trim");
            $this->form_validation->set_rules("sale_price", "Price", "required|trim");
            $this->form_validation->set_message(
                array(
                    "required" => "<b>{field}</b> is not null.",
                    'is_unique'     => 'A %s content has already been added in thistitle.!'
                )
            );
            $validate = $this->form_validation->run();

if($validate){

                $insert =  $this->db->insert('product', $data);

                // alert
                if($insert){

                    $alert = array(
                        "title" => "Success Sir",
                        "text" => "Content successfully added",
                        "type"  => "success"
                    );

                }else {
                         $alert = array(
                        "title" => "Error Sir",
                        "text" => "Content failed to load content,
                        "type"  => "danger"
                    );
   }
     }
JSON, AJAX, jQuery:
Code:
function ajax_set_full(type, title, noty, form_id, id) {
    // ajax func
    ajax_load(base_url + '' + user_type + '/' + module + '/' + type + '/' + id, 'list', 'form');
}

function form_submit(form_id, noty, e) {

    var alerta = $('#form'); // alert div for show alert message
    var form = $('#' + form_id);
    var can = '';
    if (!extra) {
        var extra = '';
    }
    form.find('.summernotes').each(function () {
        var now = $(this);
        now.closest('div').find('.val').val(now.summernote('code'));
    });

    //var form = $(this);
    var formdata = false;
    if (window.FormData) {
        formdata = new FormData(form[0]);
    }

    var a = 0;
    var take = '';
    form.find(".required").each(function () {
        var txt = '*' + req;
        a++;
        if (a == 1) {
            take = 'scroll';
        }
        var here = $(this);
        if (here.val() == '') {
            if (!here.is('select')) {
                here.css({borderColor: 'red'});
                if (here.attr('type') == 'number') {
                    txt = '*' + mbn;
                }

                if (here.closest('div').find('.require_alert').length) {

                } else {
                    here.closest('div').append(''
                        + '  <span id="' + take + '" class="label label-danger require_alert" >'
                        + '      ' + txt
                        + '  </span>'
                    );
                }
            } else if (here.is('select')) {
                here.closest('div').find('.chosen-single').css({borderColor: 'red'});
                if (here.closest('div').find('.require_alert').length) {

                } else {
                    here.closest('div').append(''
                        + '  <span id="' + take + '" class="label label-danger require_alert" >'
                        + '      *Required'
                        + '  </span>'
                    );
                }

            }
            var topp = 100;
            if (form_id == 'product_add' || form_id == 'product_edit') {
            } else {
                $('html, body').animate({
                    scrollTop: $("#scroll").offset().top - topp
                }, 500);
            }
            can = 'no';
        }

        if (here.attr('type') == 'email') {
            if (!isValidEmailAddress(here.val())) {
                here.css({borderColor: 'red'});
                if (here.closest('div').find('.require_alert').length) {

                } else {
                    here.closest('div').append(''
                        + '  <span id="' + take + '" class="require_alert" >'
                        + '      *' + mbe
                        + '  </span>'
                    );
                }
                can = 'no';
            }
        }

        take = '';
    });

    if (can !== 'no') {
        if (form_id !== 'vendor_pay') {
            $.ajax({
                url: form.attr('action'), // form action url
                type: 'POST', // form submit method get/post
                dataType: 'html', // request type html/json/xml
                data: formdata ? formdata : form.serialize(), // serialize form data
                cache: false,
                contentType: false,
                processData: false,
                beforeSend: function () {
                    console.log(formdata);
                    var buttonp = $('.enterer');
                    buttonp.addClass('disabled');
                    buttonp.html(working);
                },
                success: function () {

                    ajax_load(base_url + '' + user_type + '/' + module + '/' + list_cont_func + '/' + extra, 'list', 'first');
                    if (form_id == 'vendor_approval') {
                        noty = enb_ven;
                    }
                    iziToast.show({
                        color: 'dark',
                        icon: 'fa fa-info',
                        title: 'Bilgi',
                        message: 'İşlem Başarılı!',
                        position: 'topCenter', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter
                        progressBarColor: 'rgb(0, 255, 184)',
                        /*onOpening: function(){
                            setTimeout(function(){
                                window.location.reload(1);
                            }, 5000);
                            console.log('Page Refresh!');
                        },
                        onClosing: function(){
                           // console.log('goodbye');
                        }*/

                    });

                    $('.bootbox-close-button').click();
                    ('form_submit_success');
                    other_forms();
                },
                error: function (e) {
                    console.log(e)
                }
            });
        } else {
            //form.html('fff');
            form.submit();
            //alert('ff');
            return false;
        }
    } else {
        if (form_id == 'product_add' || form_id == 'product_edit') {
            var ih = $('.require_alert').last().closest('.tab-pane').attr('aria-labelledby');
            $("[id=" + ih +"]").click();
        }
        $('body').scrollTo('#scroll');
        return false;
    }
}
The error message always returns positive.