Grocery Crud - 在表单提交上打印post_array

时间:2014-07-10 11:09:08

标签: php codeigniter codeigniter-2 grocery-crud

上周我找到了非常好的php api,Grocery Crud,来自这里的示例http://www.grocerycrud.com/examples/the-simplest-example,我可以创建视图并且它工作正常,我的问题是编辑后有2个按钮更新更改< / strong>和更新返回列表,每当我点击这两个按钮时,我都有兴趣打印post数组,这样我就能看到内部数组是什么,而我的实际计划是每当我更新记录时(点击更新更改或更新并返回编辑中的列表),我需要更新约7个表

这是我到目前为止所尝试的,这里函数测试没有打印

function test($post_array)
 {
        echo "<pre>";
        print_r($post_array);
        echo "</pre>";
 }



function myapp(){

    $this->db = $this->load->database('Groupdb',true);
    $crud = new grocery_CRUD();
    $crud->set_table('main_table');
    $crud->columns(
                   "Serial",
                   "Date",
                   "Time"
              );
    $crud->fields(
                  "Serial",
                  "Date",
                  "Time"
                 );
    $crud->callback_after_update(array($this, 'test'));
    $crud->set_subject('Update Mains');
    $output = $crud->render();
    $this->_example_output($output);
 }

从我的代码中我认为你们可以想象表名是 main_table ,每当我更新main_table的序列号,日期和时间时,它必须反映在7个其他表中,其字段是日期和时间,此处序列号是唯一的

2 个答案:

答案 0 :(得分:3)

首先,如果您使用的是PHP&gt; = 5.3,那么最好使用匿名函数,以确保它能够正常工作。例如,在您的代码中,您可以拥有:

$crud->callback_after_update(function () {
    echo "<pre>";
    print_r($post_array);
    echo "</pre>";         
    die();
});

正如你所注意到的,我确实在那里增加了一条线。这是die();。通过这种方式,您可以确保在萤火虫上看到预期的结果。

可能你没有任何印刷品,因为杂货店CRUD正在删除之前用一些魔术代码打印的任何东西。使用die();,您只需确保永远不会达到此魔法代码。

答案 1 :(得分:1)

此问题已在Debugging in Grocery CRUD

处得到解答

更具体地说:

  

仍然杂货CRUD不支持回调调试,所以我认为它现在是一个很好的解决方案。除此之外,在没有黑客攻击的情况下进行调试,您可以轻松拥有codeigniter的log_message功能。有关详情,请参阅http://ellislab.com/codeigniter/user-guide/general/errors.html