2013-03-12 38 views
0

我已經設置了我的Codeigniter應用程序,以便我可以通過Ajax上傳文件。我跟着這個教程http://net.tutsplus.com/tutorials/javascript-ajax/how-to-upload-files-with-codeigniter-and-ajax/Codeigniter控制器檢測ajax文件上傳

我的原始窗體檢查是否已被調用ajax請求,如果不是,那麼我有後備CI表單驗證/錯誤消息顯示,而不是。

我檢查這個使用 - $this->input->is_ajax_request()

我的代碼是這樣的:

if($this->input->is_ajax_request()){ 
    // process ajax form data 
} else { 
    if($this->form_validation->run() == FALSE) { 
     $data['success'] = 0; 
     $data['errors'] = validation_errors(); 
    } else { 
     $data['success'] = 1; 
    } 
    $this->load->view('form', $data); 
} 

做了一些調查,我發現,因爲它實際上不是一個Ajax我不能採用同樣的技術後,請求,因此我不知道如何使用這種方法。如果任何人都能指出我會朝着正確的方向發展,那將是很棒的。我不喜歡它完全依賴於ajax,我喜歡有一個後備選項。我在評論中注意到有人在他們的ajaxfileupload.js中設置了一個CSFR cookie,但說實話我對js不太熱,所以我不知道從哪裏開始。提前致謝。

回答

1

在你的AJAX請求有一切你可以張貼鍵/值一起:

ajax : 1 

然後在你的控制器:

if($this->input->post('ajax') == 1) { 
    // process ajax form data 
} 
else 
{ 
    // form validation 
} 

希望這有助於。

+0

啊當然,我想我總是試圖讓事情變得複雜。這應該完美,謝謝。 – 2013-03-12 09:50:18