带有ajax可选表单字段的codeigniter更新

问题描述 投票:0回答:1

我有一个更新产品的区域,但是产品的标题必须是唯一的。在更新时,即使更改了描述字段,我也会收到以前输入的标题错误。更新其他字段而不更改标题我想做标题更改时,它必须是唯一的,不要使用以前的录音标题可以帮我吗

控制器

<?php 

        public function update ($para1 == "update") {
            $options = array();
              $this->load->library('form_validation');
        $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> This field required",
                'is_unique' => 'This %s field must contain a unique value'
            )
        );

        $validate = $this->form_validation->run();

            if ($validate) {
            if ($_FILES["images"]['name'][0] == '') {
                $num_of_imgs = 0;
            } else {
                $num_of_imgs = count($_FILES["images"]['name']);
            }
            $num                        = $this->crud_model->get_type_name_by_id('product', $para2, 'num_of_imgs');
            $download                   = $this->crud_model->get_type_name_by_id('product', $para2, 'download');
            $data['title']              = $this->input->post('title');
            $data['category']           = $this->input->post('category');
            $data['description']        = $this->input->post('description');
            $data['sub_category']       = $this->input->post('sub_category');
            $data['sale_price']         = $this->input->post('sale_price');
            $data['purchase_price']     = $this->input->post('purchase_price');
            $data['tax']                = $this->input->post('tax');
            $data['discount']           = $this->input->post('discount');
            $data['discount_type']      = $this->input->post('discount_type');
            $data['tax_type']           = $this->input->post('tax_type');
            $data['shipping_cost']      = $this->input->post('shipping_cost');
            $data['tag']                = $this->input->post('tag');
            $data['color']              = json_encode($this->input->post('color'));
            $data['num_of_imgs']        = $num + $num_of_imgs;
            $data['front_image']        = 0;
            $additional_fields['name']  = json_encode($this->input->post('ad_field_names'));
            $additional_fields['value'] = json_encode($this->input->post('ad_field_values'));
            $data['additional_fields']  = json_encode($additional_fields);
            $data['brand']              = $this->input->post('brand');
            $data['unit']               = $this->input->post('unit');
            $choice_titles              = $this->input->post('op_title');
            $choice_types               = $this->input->post('op_type');
            $choice_no                  = $this->input->post('op_no');
            if(count($choice_titles ) > 0){
                foreach ($choice_titles as $i => $row) {
                    $choice_options         = $this->input->post('op_set'.$choice_no[$i]);
                    $options[]              =   array(
                                                    'no' => $choice_no[$i],
                                                    'title' => $choice_titles[$i],
                                                    'name' => 'choice_'.$choice_no[$i],
                                                    'type' => $choice_types[$i],
                                                    'option' => $choice_options
                                                );
                }
            }
            $data['options']            = json_encode($options);
            $this->db->where('product_id', $id);
            $add =  $this->db->update('product', $data);
            if ($add) {
                $data["type"] = "success";
                $data["message"] = "Transaction Successfully";
            } else {
                $data["type"] = "error";
                $data["message"] = "An error occurred during the operation ";
            }
        } else {
            $data["type"] = "error";
            $data['message'] = validation_errors();
        }
        echo json_encode($data);
        recache();

            }
codeigniter codeigniter-3
1个回答
0
投票

检查标题名称在jQuery Onkeyup的客户端Ajax中是否存在。

© www.soinside.com 2019 - 2024. All rights reserved.