使用AJAX将数组发送到CI中的控制器/模型

时间:2014-01-12 22:59:58

标签: ajax codeigniter model controller

所以基本上我在javascript中有一个两项数组,它是根据用户点击的链接生成的。我试图将此数组发送到我的控制器,然后发送到模型。模型将查看数组并将其中一个项与特定列/行匹配,并将有选择地显示数据。

我在将数据从AJAX传递到控制器时遇到问题。

AJAX代码(在.js文件中)

  $('#youmax-video-list-div').append('<div id="testing1"></div>');

                    $('#concept').click(function(){
                                        console.log(course);
                       $.ajax({
                              url: 'http://localhost:8888/index.php/trial/getValues',
                              type:'POST',
                              dataType: 'json',
                              data:'',
                              error: function(){
                              $('#testing1').append('<p>goodbye world</p>');
                              },
                              success: function(result) {
                              var htmlStr = '';
                              $.each(result, function(a, b){
                                     htmlStr += b.qText + '<br />';
                                     });
                              $('#testing1').append(htmlStr);
                              } // End of success function of ajax form
                              }); // End of ajax call
                       });

我假设我必须对数据字段做一些事情,但我不知道它的语法。

Chrome控制台登录时会出现这个:

数组[2] 0:“PL8G0kdHFfE3WuyevUDvwSYCZw8mp8LBFA” 1:“PL8G0kdHFfE3V62Jp2ju-PelOaNUkH7xR8”

控制器

function getValues(){
    $this->load->model('get_db');
    $data = $this->get_db->getAll();
    $this->output->set_content_type('application/json');
    $this->output->set_output(json_encode($data));
    return $data;  
}

模型

class Get_db extends CI_Model{
    function getAll(){
        $query=$this->db->query("SELECT * FROM questions");
        return $query->result();
        //returns from this string in the db, converts it into an array

    }
}

正如我之前所说,我真的只关心将数据传输到我的控制器和我的模型。 数组的名称是“course”。但是,在console.log中似乎并非如此。这只是铬的事吗?

2 个答案:

答案 0 :(得分:1)

// chkval 是数组元素的类

AJAX功能:

function ajaxSub(goals)
{
    var theArray = new Array();
    var i=0;
    jQuery('.chkval').each(function(){
        if(jQuery(this).prop('checked'))
        {
            theArray[i] = jQuery(this).val();
            i++;
        }
    });
    jQuery.ajax({
         url: '<?php echo site_url('mycontroller/myfunctions');?>',
         type: 'post',
         data: {
             arr: theArray,
             other_id: ''
         },
         datatype: 'json',
         success: function () {
         }
    });
}

在控制器中:

$arr = $this->post('arr');

foreach($arr as $ar)
{
    echo $ar; // prints each element of the array.
}

答案 1 :(得分:0)

与上述答案相同,但在控制器中运行此代码:

$arr = $this->input->post('arr');

foreach($arr as $ar)
{

    echo $ar; // prints each element of the array.

}