2013-03-12 3 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, мне нравится иметь альтернативный вариант. Я заметил в комментариях, что кто-то настроил cookie CSFR в своем ajaxfileupload.js, но, честно говоря, я не слишком горячий с js, поэтому я не знаю, с чего начать. Заранее спасибо.

ответ

1

В запросе AJAX вместе со всем остальным вы могли бы разместить ключ/значение:

ajax : 1 

Тогда в контроллере:

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

Надеется, что это помогает.

+0

Ах, конечно, я всегда стараюсь усложнять ситуацию. Это должно работать отлично, спасибо. –

Смежные вопросы