2013-08-21 2 views
0

Это моя первая попытка ajax, и я еще новичок в CI. Я установил свой MVC, поскольку он ниже, и я использую букмарклет для вызова функции js. Я знаю, что часть букмарклета программы работает, так как я могу жестко закодировать код $('#source').val('Update Summary ID') и обновить его поле правильно. Когда я пытаюсь использовать запрос AJAX, я не получаю ответа. Я использую firebug для проверки ответа и не вижу ошибок. Дайте мне знать, правильно ли я все правильно настроил, и что еще мне не хватает. Благодаря!Нет ответа от модели. Codeigniter Ajax request

Контроллер:

public function updatePajeFields(){ 
     $data['id'] = $this->mAutoPAJE->updatePajeFields(); 
     header('Content-type: application/json; charset=utf-8'); 
     echo json_encode($data['id']); 

    } 

Модель:

 public function updatePajeFields(){ 
     $row = $_POST['row']; 
     $this->db->select('*'); 
     $this->db->from('pajeV2test'); 
     $this->db->where('paje_id', $row); 

     $query = $this->db->get(); 
     return $query->result_array(); 
     } 

JavaScript:

$(document).ready(function() { 

     var data = { 
      'row' : prompt("What is the ID? v4") 
     } 
    $.ajax({ 
     url: 'http://myurl', 
     data: data, 
     type: 'POST', 
     success: function(responses) { 
      $('#ticket').val(responses.researched_by); 
      $('#source').val(responses.researched_by); 
     } 
    }); 
}); 
+0

что ответ Аякса вызова вы видите в поджигатель? –

+0

Ответ пуст. Я пробовал несколько других вещей с различными результатами. Я хотел удостовериться, что вызов был первым в контроллере, поэтому я просто добавил базовое эхо в функцию. Эхо не работало, пока я не добавил 'dataType: 'jsonp''. При этом, хотя моя переменная POST не передается модели. Помогает ли это устранение неполадок ?. – vizyourdata

+0

для отладки Я предлагаю вам удалить заголовок json из контроллера, установить тип данных в jquery в «text» и поместить console.log (ответы) в ваш обратный вызов успеха, теперь, если вам удалось получить эхо в контроллере, добавьте ' var_dump ($ row) 'в вашей модели также я предлагаю вам использовать входной класс CI для получения значения post, как этот' $ row = $ this-> input-> post ('row') ' –

ответ

0

Я думаю, что result_array возвращает массив, так что вам нужно будет что-то вроде $results = $query->result_array(); $return $results[0];. В качестве альтернативы вы можете использовать $query->row();, который возвращает одну строку.

Query Results - CodeIgniter docs

+0

Спасибо! Я попробовал 'return $ query-> row();' без каких-либо результатов. – vizyourdata

+0

Можете ли вы попробовать 'file_put_contents ('log.txt', $ this-> db -> _ compile_select());' прямо перед '$ this-> db-> get();' line? Это должно дать вам точный запрос, который он запускает. Затем вы можете увидеть, является ли запрос проблемой (например, параметры неверны) или сами данные. – Technoh

+0

Где я могу получить доступ к выводу log.txt? – vizyourdata

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