与ajax帖子的codeigniter问题

时间:2016-01-27 15:02:55

标签: ajax codeigniter post

我尝试使用Ajax向控制器调用3个参数,但它给了我错误Missing argument 1 and 2 and 3,我知道Codeigniter只接受1个参数,所以我尝试在函数内添加:

$calibracao_data = $this->uri->segment(3);
$user_a_drop = $this->uri->segment(4);
$status = $this->uri->segment(5);

但没有任何效果,我也在函数内部回应变量,并没有取得成功。 更改了配置文件:$config['permitted_uri_chars'] = 'a-z 0-9~%.:&_\-';,没有任何内容

ajax的代码:

<script>
function get_active(calibracao_data, user_a_drop, ativo){
    var fieldcal = $("input#calibracao_data").val();
    var field1 = fieldcal.replace("/", "-");
    var field2 = $("select#user_a_drop").val();
    var field3 = ativo;
    jQuery.ajax({

    url: "<?php echo base_url().'instrumentos/get_proximocal_cliente_status/'; ?>",
    data: { field1: field1, field2: field2, get_status: field3 },
    success: function(g) { 
        //alert (g); 
        $(".post_table").html(g);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
         alert("some error");
    }
});
};

从控制台返回:

http://localhost/apoio/app/instrumentos/get_proximocal_cliente_status/?field1=04-16&field2=75&get_status=Ativo

请帮忙。

2 个答案:

答案 0 :(得分:0)

尝试

$calibracao_data = $this->input->get('field1');
$user_a_drop = $this->input->get('field2');
$status = $this->input->get('field3');

或者将method: "POST",属性添加到AJAX对象。

如果您无法实现所有后果,请不要更改配置文件中的任何内容,例如允许使用字符参数。

答案 1 :(得分:0)

  var param = {
   fieldcal : $("input#calibracao_data").val(),
   field1 : fieldcal.replace("/", "-"),
  field2 : $("select#user_a_drop").val(),
   field3 :ativo
}
    $.ajax({

    type: "POST",

    url: "<?=base_url()?>.'instrumentos/get_proximocal_cliente_status",

    data: param,

    cache: false,

    success: function(rs)

    {

    $(".post_table").html(rs);
    },

    }

    });

您可以查看以上代码,为我工作