如何在ajax中调用codeigniter函数?

时间:2017-09-14 08:46:42

标签: javascript php jquery ajax codeigniter

在控制器中,我有一个_remap()用于路由。

我的控制器如下:

public function _remap($id)
{
    $this->index();
}
public function index()
{
    $this->accesscontrol->can_or_redirect('view', 'translation');
    $this->output->view('translation/language');    
}
function process(Request $request){
       // if(Response::ajax()) return "OK";
        return json_encode(array('ok'));
}

我的观点如下:

$('#lang_choice1').each(function() {
     $('#src_trans_lang').val($("#lang_choice1 option:selected").val());
     var msg = $(this).val();

     $.ajax({
           type: "POST",
           url: '<?=site_url('translation/language/process')?>',
           data: msg,
           success: function(data){ }
     });
     return false;
});

我试图在ajax中调用函数进程,而不是调用它。如何修改_remap函数以调用ajax调用?

1 个答案:

答案 0 :(得分:1)

试试这个

脚本部分

$('#lang_choice1').each(function () {
      $('#src_trans_lang').val($("#lang_choice1 option:selected").val());
      var msg = $(this).val();

      $.ajax({
        type: "POST",
        url: '<?= site_url('language/process') ?>',
        data: {"msg":msg},
        dataType:"json",
        success: function (data) {
          console.log(data);

        }

      });

      return false;
    });

控制器处理功能

function process() {
    $data = $this->input->post();
    $result['status'] = "ok";
    $result['response'] = $data;
    echo json_encode(array($result));
    exit(0);
  }

检查控制台中的响应