【问题标题】:How to pass a jtable variable to a controller in CodeIgniter如何将 jtable 变量传递给 CodeIgniter 中的控制器
【发布时间】:2014-08-22 06:13:52
【问题描述】:

我正在尝试在 CodeIgniter 中使用 jquery-jtabel,但在将变量 bulantahun 从视图/ajax 传递到控制器时遇到问题。这是我的代码。

//this is the ajax code 
$('#TableContainer').jtable({
                title: 'Absensi',
                paging: true,
                sorting: true,
                defaultSorting: 'bulanTahun ASC',
                selecting: true,
                multiselect: true, 
                selectingCheckboxes: true, 


                actions: {
                    listAction: base_url+'Absensi_controller/listRecord',
                    createAction: base_url+'Absensi_controller/create',
                    updateAction: base_url+'Absensi_controller/update',
                    deleteAction: base_url+'Absensi_controller/delete'
                },
// the field is here


$('#TableContainer').jtable('load',{
                    bulantahun:$("#from").val()
            });


//and this is my code in Controller
function create()
{
$bulantahun = $this->input->post('bulantahun'); //failed to post this value
//my code here
}

【问题讨论】:

  • 尝试在 get like createAction 中发送数据:base_url+'Absensi_controller/create&id='bulantahun'
  • 以及如何在 Controller 中获取值? $this->input->get('bulantahun'),不是吗?

标签: php codeigniter jquery-jtable


【解决方案1】:

看来你不是从 ajax 发帖的。所以我认为这是你的问题。你需要在你的 jquery 函数中做这样的事情:

    $.ajax({
      type: "POST",
      url: "Absensi_controller/create",
      data: bulantahun,
      success: success,
      dataType: String
    )};

【讨论】:

  • 所以我不能在 CodeIgniter 中使用 jtable?我之前用jtable没有框架,从ajax/jtable post到php是成功的。
【解决方案2】:

好的,我只是对他做了一点调查。 您应该创建一个具有以下功能的控制器(您已经完成了一个:-)

    function listRecord(){

    }

    function create(){

    }  

    function update(){

    }

    function delete(){

    }

然后在javascipt部分:

    var base_url = "<?=base_url()?>"; // this line is the one that was missing in your code
    actions: {
                listAction: base_url+'Absensi_controller/listRecord',
                createAction: base_url+'Absensi_controller/create',
                updateAction: base_url+'Absensi_controller/update',
                deleteAction: base_url+'Absensi_controller/delete'
            }

我希望这会有所帮助...

【讨论】:

  • 是的。很抱歉,因为我没有在这里完全发布我的代码。我正在按照您的建议编写代码,我说谢谢。但我的问题是我无法在 Controller 中获得 bulantahun 的值。我正在尝试 $this->input->post('bulantahun'),但我无法获得价值。谢谢。
【解决方案3】:

好的,您是否尝试过 var_dump 后数组?像这样的:

    function create()
    {
    var_dump($this->input->post());
    }

【讨论】:

    【解决方案4】:

    您可以尝试另一件事。检查您在 javascript 中构建的 url 是否正确。

    做这样的事情:alert(base_url+'Absensi_controller/create');

    还要检查您是否可以在浏览器中访问该网址。创建一个回声“一些文本”;以确保....

    【讨论】:

    • 我已经像这样检查它的代码: function create() { $bulantahun=$this->input->post('bulantahun'); if($bulantahun != null) 回显“成功”;否则回显“错误”; } 结果是错误
    • 您尝试过我的建议了吗?因为如果 url(在 javascript 部分中)是错误的,它将无法工作
    • 谢谢。我得到了解决方案。不是因为url,而是在控制器中,我忘了写“exit();”在回显 json_encode 之后。这是我的代码: function listRecord() { $this->load->model('model_superadmin'); $jTableResult=$this->model_superadmin->list_record(); print_r(json_encode($jTableResult));出口(); }
    【解决方案5】:

    我已经找到了解决方案。我的错,我在回显 json 后没有写 exit() 函数。这是我在控制器上的代码

    function listRecort()
    {
    $this->load->model('model_superadmin');
    $jtableResult = $this->model_superadmin->listRecord();
    echo json_encode($jtableResult):
    exit(); //I miss this function
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2019-04-09
      相关资源
      最近更新 更多