2014-10-15 2 views
0

Привет, У меня возникли проблемы с доступом к данным, которые я отправляю на контроллер CI. переменная $ id не привязана ни к чему. Является ли это правильным способом назначения данных сообщения переменной в контроллере?Как получить данные, переданные контроллеру CodeIgniter

Посмотреть/AngularJs

addanswers = function() { 
    var id = $scope.idSelectedPoll; 

    $http({ 
    url: 'polls/json_get_answers', 
    method: "POST", 
    datatype : "json", 
    data: JSON.stringify({'id':id}), 
    }).success(function (data) { 
    $scope.answers = data; 
    }); 


    } 

Контроллер

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Polls extends CI_Controller { 
function __construct() { 
parent::__construct(); 
} 

function index() { 
$data['title'] = 'Poll Viewer'; 
$data['viewname'] = 'pollBrowser'; 
$data['scripts']['polls'] = 'polls'; 
$data['content'] = $this->load->view('polls/pollBrowser',$data, TRUE); 

$this->load->helper('html'); 
$this->load->view('templates/master',$data); 
} 

function json_get_answers() 

{  
$id = $this->input->post('id'); 
$this->load->model('Poll','poll'); 
$data = $this->poll->get_json_answers_data($id); 
print json_encode($data); 
} 
} 

Модель

<?php 
class Poll extends CI_Model { 
function __construct() { 
parent::__construct(); 
$this->load->database(); 
} 
function get_json_answers_data($id) { 
$this->db->from('Answers'); 
$this->db->where("answerSet",$id); 
$this->db->order_by('id'); 
$query = $this->db->get(); 

return $query->result(); 
} 
} 

Я включил изображение его отправки почтовые данные после нажатия на элемент в списке , Так это должно выглядеть? Запрос полезной нагрузки указывает на то, что, по-видимому, правильная публикация данных «id».

enter image description here

+0

echo var_dump ($ _ POST); и echo print_r ($ _ POST); оба говорят, что массив пуст – tama

ответ

0

Вы можете увидеть, если id присутствует в $ _POST?

Если да, то взгляните на этот пост по поводу Codeigniter $this->input->post() empty while $_POST is working correctly

+0

Привет, я включил CSRF в config/config.php, который привел меня к этому «POST http: // localhost: 8000/index.php/polls/json_get_polls 500 (Internal Server Error)» , Я думаю, что я смогу отработать это отсюда. Благодаря! – tama

0

первой попытки, чтобы json_decode данные

$data = json_decode($this->input->post()); 
$id = $data['id']; 
0

Понял работать там была проблема с пост вызова в angularjs функции, не совсем конечно, почему данные должны быть отправлены таким образом или почему заголовки должны быть указаны. Если кто-то может объяснить аргументы за этот ответ, который будет оценен. Спасибо за помощь, ребята!

addanswers = function() { 
    var id = $scope.idSelectedPoll; 

    $http({ 
    url: 'polls/json_get_answers', 
    method: "POST", 
    datatype : "json", 
    data: 'id=' + id, 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
    }).success(function (data) { 
    $scope.answers = data; 
    }); 

    } 
}