在codeIgniter中使用ajax发送表单数据以及输入类型文件

问题描述:

我有一个包含输入类型文件和其他表单字段的简单表单。我能够将输入类型的文件数据发送给控制器,但发送其他表单数据以及输入类型文件时出现问题。
以下是我迄今所做的 -
表 -在codeIgniter中使用ajax发送表单数据以及输入类型文件

<form method="post" id="theme_option_form" enctype="multipart-formdata"> 
     Logo :<input type="file" name="image_file" id="image_file"> 
     Logo Size :<input type="text" id="logo_size" class="form-control input-sm"> 
     Heading Size :<input type="text" id="hding_size" class="form-control input-sm"> 
     <input type="submit" name="upload" id="upload" value="Upload" class="btn btn-primary btn-sm"> 
</form> 

Ajax代码 -

$('#theme_option_form').on("submit",function(e){ 
    var hding_size=$('#hding_size').val(); 
    var logo_size=$('#logo_size').val(); 
       $.ajax({ 
        url:base_url+'admin/theme_options_data', 
        method:'post', 
        data:new FormData(this), 
        contentType:false, 
        cache:false, 
        processData:false, 
        success:function(data){ 
         alert(data); 
        } 
       });   
}); 

控制器功能 -

public function theme_options_data() 
{ 
     if(isset($_FILES['image_file']['name'])) 
     { 
      $this->load->helper('string'); 
      $logo_name=random_string('alnum',5); 
      $config['upload_path']='./upload'; 
      $config['allowed_types']='jpg|jpeg|png|gif'; 
      $config['file_name']=$logo_name; 
      $this->load->library('upload',$config); 
      if(!$this->upload->do_upload('image_file')) 
      { 
       echo $this->upload->display_errors(); 
      } 
      else 
      { 
       $data=$this->upload->data(); 
      } 
      } 

    } 

文件上传工作正常,但我只需要发送表单数据(标志大小,标题大小等)到控制器,然后我必须将所有数据存储到数据库。
请帮帮我。
谢谢

+0

获得使用$ _ POST [ 'logo_size']的数值,但你需要把名字= “logo_size” 在你输入申请 – webDev

表格 ...把​​领域的名字。

<form method="post" id="theme_option_form" enctype="multipart-formdata"> 
    Logo :<input type="file" name="image_file" id="image_file"> 
    Logo Size :<input type="text" name="logo_size" id="logo_size" class="form-control input-sm"> 
    Heading Size :<input type="text" name="hding_size" id="hding_size" class="form-control input-sm"> 
    <input type="submit" name="upload" id="upload" value="Upload" class="btn btn-primary btn-sm"> 

控制器

public function theme_options_data() 
{ 
     if(isset($_FILES['image_file']['name'])) 
     { 
      $this->load->helper('string'); 
      $logo_name=random_string('alnum',5); 
      $config['upload_path']='./upload'; 
      $config['allowed_types']='jpg|jpeg|png|gif'; 
      $config['file_name']=$logo_name; 
      $this->load->library('upload',$config); 
      if(!$this->upload->do_upload('image_file')) 
      { 
       echo $this->upload->display_errors(); 
      } 
      else 
      { 
       $data=$this->upload->data(); 
      } 
      } 
     $logo_size = $_POST['logo_size']; 
     $heading_size = $_POST['hding_size']; 
    } 
+0

@ SHAILESH感谢帮助,它的工作,但我有font_selector从下拉菜单中选择字体。我用div来创建它,那么我怎样才能把它看成是价值? – Deepak