2016-06-21 15 views
0

ajaxを使用してphp codeigniterプロジェクトにファイルをアップロードしています。ファイルが正常にアップロードされています。しかし、私はまた、これを使っていくつかの追加の値をデータベースに書きたいと思っています。私はそれを行う方法がわかりません。ファイルを保存しながら、誰もが別のデータフィールドを渡す方法を教えてくださいすることができ、PHPでajax codeiginterでファイルをアップロードするための追加フィールドを渡す方法

ここに私のJSコードが

ある
$("#btnupdatecover").click(function(event){ 

    alert(coverPostion); 

    if($("#fileuploadcover").val() != ''){ 
     if (typeof FormData !== 'undefined') { 

     var form = $('#formname').get(0); 
    var formData = new FormData(form); 

    $.ajax({ 
     type: "POST", 
     url: "Userpage/updatedp", 
     data: formData, 
     mimeType:"multipart/form-data", 
     dataType: 'json', 
     xhr: function() { 
      var myXhr = $.ajaxSettings.xhr(); 
      return myXhr; 
     }, 
     cache:false,      
     contentType: false, 
     processData: false, 
     success: function(result){ 


     toastr8.info({ 
     message:'Profile Picture Updated', 
     title:"New Image Uploaded", 
     iconClass: "fa fa-info", 
      // imgURI: ["https://unsplash.it/120/120?image=20"] 
    }); 
     clearAll(); 
     }      
    }); 
    // 
    event.preventDefault(); 

     } 

} 
else 
{ 
    toastr8.info({ 
     message:'Error Occured', 
     title:"Please try again", 
     iconClass: "fa fa-info", 
    // imgURI: ["https://unsplash.it/120/120?image=20"] 
    }); 
} 

}); 

私のPHPコード

public function updatedp() 
    { 
    $var = $_FILES ['fileUp']; 
    $img=$_FILES ['fileUp']; 
    $config['upload_path'] = 'webim/dp_images'; 
    $config['overwrite'] = 'TRUE'; 
    $config["allowed_types"] = 'jpg|jpeg|png|gif'; 
    $config["max_size"] = '1400'; 
    $config["max_width"] = '1400'; 
    $config["max_height"] = '1400'; 
    $this->load->library('upload', $config); 

    if(!$this->upload->do_upload('fileUp')) 
    {    
     $this->data['error'] = $this->upload->display_errors(); 
     echo json_encode(array("result"=>$this->data['error'])); 
     exit; 
    } 
    else 
    { 

      $data=array('active'=>0); 
      $this->db->where('userid','1'); 
      $this->db->update('music_user_dp',$data); 

      $uname['uname'] =$this->session->all_userdata('uname'); 
      $uname['id'] =$this->session->all_userdata('id'); 
      $post_data = array(
      'id' => '', 
      'userid' => $uname['id']['id'], 
      'profilepic'=>$var['name'], 
      'updatedate' => date("Y-m-d H:i:s"), 
      'active' => '1' 
      ); 
      $this->Userpage_model->insert_dp_to_db($post_data); 
      echo json_encode(array("result"=>"Success")); 
      exit; 
    } 
    } 

私はこれで余分なフィールドを渡しますデータベースに投稿する

おかげ

+0

これはあなたを助けると思うhttp://stackoverflow.com/questions/21044798/how-to-use-formdata-for-ajax-file-uploadポスターはAjaxを使ってファイルを送信する方法を尋ねましたが、追加データを渡す。まだ助けが必要な場合は – mic

答えて

0

あなたはこれを達成することができます

アプローチフォームに1

利用隠しフィールド。

アプローチ2

$.ajax({ 
     type: "POST", 
     url: "Userpage/updatedp", 
     data: {formData: formData, var1: 'value', var2: 'value'}, 
     dataType: 'json', 
     success: function(result){ 


     toastr8.info({ 
     message:'Profile Picture Updated', 
     title:"New Image Uploaded", 
     iconClass: "fa fa-info", 
      // imgURI: ["https://unsplash.it/120/120?image=20"] 
    }); 
     clearAll(); 
     }      
    }); 

今、これらの値は、あなたのコントローラーを取得します。

+0

私に教えてください。 –

+0

コントローラの値を取得できません。あなたのコードを私に見せてください。 –

+0

私にあなたのコードを見せてください。 –

関連する問題