Как загрузить мультиселект изображения в базу данных, используя codeigniter 3, AJAX и Jquery - PullRequest
1 голос
/ 11 мая 2019

Я настраиваю множественный выбор в базе данных, чтобы добавить его

PHP, MySql, AJAX JQUERY и Codeigniter 3

Я не могу поместить код некоторых областей в Ajax в мультиселектную загрузку. Можете ли вы дать некоторые идеи для этого кодирования? Спасибо за ваши ответы :) Спасибо за ваши ответы :) Спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :) спасибо за ваши ответы :)

Это мои внешние скрипты

             //This is my external scripts  

             $('#frmprod').submit(function(e){
                    e.preventDefault();

                    var formData = {
                    'categproduct': $('#categproduct').val(),
                    'txtbname': $('#txtbname').val(),
                    'txtcost': $('#txtcost').val(),
                    'txtdesc': $('#txtdesc').val(),
                    'txtstock': $('#txtstock').val(),
                    'txtprice': $('#txtprice').val()
                }

                  var files = $('#files')[0].files;
                  var error = '';
                  var form_data = new FormData();
                  for(var count = 0; count<files.length; count++)
                  {
                   var name = files[count].name;
                   var extension = name.split('.').pop().toLowerCase();
                   if(jQuery.inArray(extension, ['gif','png','jpg','jpeg']) == -1)
                   {
                    alert(error += "Invalid " + count + " Image File");
                   }
                   else
                   {
                    form_data.append("files[]", files[count]);
                   }
                  }

                         $.ajax({
                           url: base_url + 'Staff/add_products',
                           type: 'post',
                           data: formData + form_data,
                           dataType: 'json',
                           contentType:false,
                           cache:false,
                           processData:false,
                               success:function(response){
                               console.log(response);
                               if(response.success == true){
                                $('.text-danger').remove();
                                $('#frmprod')[0].reset();
                                swal("Great Job!","Successfully Saved 
                                            Product","success");  
                             }
                               else{
                                 $.each(response.message, function(key, value){
                                 var element = $('#' + key);
                                 element.closest('div.form-group')
                                 .find('.text-danger').remove();
                                 element.after(value);                      
                                  });
                              } 
                            },
                             error: function(response){
                                 console.log(response);
                                 swal("Sorry!","Failed to Save in 
                                         Product","error"); 
                            }
                        });

                    });

Это мой контроллер

//This is my controller

public function add_products()
                {
            $valid_message = array('success' => false, 'message' => array(), 'error' => '');

                $categproduct =  $this->input->post('categproduct');
                $bname =  $this->input->post('txtbname');
                $desc = $this->input->post('txtdesc');
                $stock = $this->input->post('txtstock');
                $cost = $this->input->post('txtcost');
                $price = $this->input->post('txtprice');
                $status = 'Available Stock';

            $this->form_validation->set_rules('categproduct','Categtools','required');
            $this->form_validation->set_rules('txtbname','Brandname','trim|required');
            $this->form_validation->set_rules('txtcost','Cost','trim|required|is_numeric');
            $this->form_validation->set_rules('txtdesc','Decription','required');
            $this->form_validation->set_rules('txtstock','Stock','trim|required|is_numeric|min_length[1]');
            $this->form_validation->set_rules('txtprice','Price','trim|required|is_numeric');

            $this->form_validation->set_error_delimiters('<p class = "text-danger"><i class="fa fa-warning"></i> <span style="font-size:0.8em;">','</span></p>');


                    if($this->form_validation->run()==false){
                        foreach ($_POST as $key => $value) {
                            $valid_message['message'][$key] = form_error($key);
                    }   
                } else {

                        $valid_message['success'] = true;


                        if($_FILES["files"]["name"] != '')
                              {
                               $output = '';
                               $config["upload_path"] = './upload/';
                               $config["allowed_types"] = 'gif|jpg|png|jpeg';
                               $config["encrypt_name"] = TRUE;
                               $this->load->library('upload', $config);
                               $this->upload->initialize($config);
                               for($count = 0; $count<count($_FILES["files"]["name"]); $count++)
                               {
                                $_FILES["file"]["name"] = $_FILES["files"]["name"][$count];
                                $_FILES["file"]["type"] = $_FILES["files"]["type"][$count];
                                $_FILES["file"]["tmp_name"] = $_FILES["files"]["tmp_name"][$count];
                                $_FILES["file"]["error"] = $_FILES["files"]["error"][$count];
                                $_FILES["file"]["size"] = $_FILES["files"]["size"][$count];
                                if($this->upload->do_upload('file'))
                                {
                                 $data = $this->upload->data();
                                 $output = $data["file_name"];
                                }
                               }  
                            }


                         $products_data = array(

                                      'img_dir'=>$output,
                                      'categproducts'=>$categproduct,
                                      'brandname'=>$bname,
                                      'description'=>$desc,
                                      'stock'=>$stock,
                                      'cost'=>$cost,
                                      'price'=>$price,
                                      'status'=>$status

                        );

                        $this->db->insert('tbl_products', $products_data);
                 }

                echo json_encode($valid_message);

            } 

это мои взгляды

<!-- my views-->

<form id="frmprod" enctype="multipart/form-data">
    <div class="form-group">
        <label class="control-label">Select Category Product</label>
        <div class="input-icon">
            <select class="form-control placeholder-no-fix" id="categproduct">
                   <?php foreach($categ as $cat) { ?>
                <option style="font-family: verdana;" value="<?php echo $cat->categproducts;?>"><?php echo $cat->categproducts;?></option>
                    <?php 
                     } 
                    ?>
           </select>
       </div>
    </div>
    <div class="form-group">
        <label class="control-label">Brand Name</label>
        <input type="text"  class="form-control" id="txtbname"/> </div>
    <div class="form-group">
        <label class="control-label">Description</label>
        <textarea class="form-control" rows="2" id="txtdesc"/> </textarea> </div>
    <div class="form-group">
        <label>Image Files</label>
        <input  type="file" name="files" id="files" class="btn btn-info" multiple> </div>
    <div class="form-group">
        <label class="control-label">Stock</label>
        <input type="text"  class="form-control" id="txtstock"/> </div>
    <div class="form-group">
        <label>Cost</label>
        <input type="text" class="form-control form-control-sm" id="txtcost">
      </div>
    <div class="form-group">
        <label>Price</label>
        <input type="text" class="form-control form-control-sm" id="txtprice">
    </div>                                                   
        <button type="submit" class="btn btn-info"> Save Product</button> &nbsp </button>  <button class="btn btn-danger" id="btnclear" type="button"> Clear Product</button>

</form>
...