0

Ajax経由でファイルをアップロードできるようにCodeigniterアプリケーションをセットアップしました。私はこのチュートリアルに従いましたhttp://net.tutsplus.com/tutorials/javascript-ajax/how-to-upload-files-with-codeigniter-and-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にあまり熱心ではないので、どこから始めればよいのかわかりません。前もって感謝します。

4

1 に答える 1

1

AJAXリクエストで、キー/値を投稿できる他のすべてのものと一緒に:

ajax : 1

次に、コントローラーで:

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

お役に立てれば。

于 2013-03-12T09:46:45.037 に答える