Grocery CRUD日期输入的默认值?

时间:2012-12-10 02:23:30

标签: codeigniter jquery-ui-datepicker grocery-crud

我遵循Grocery CRUD网络文档http://www.grocerycrud.com/examples/callback_edit_field_example

中的指南

我想这是插入时为输入字段设置默认值的方法之一。我试图通过使用相同的方法设置日期输入字段的默认值。日期值确实出现在字段中,但jquery日期选择器功能不再可用。

是否曾尝试在Grocery CRUD中设置date的默认值但是仍然保留其jquery datepicker函数?

先谢谢!

3 个答案:

答案 0 :(得分:4)

我发现一个简单的方法是使用不可编辑的默认值

$this->grocery_crud->callback_add_field('BookedDate', function(){ return date('y-m-d'); });

这将在日期字段上设置今天的日期,但这是不可编辑的。

答案 1 :(得分:3)

此功能实际上并不存在于杂货店CRUD中。因此,我们将尝试使用一个小的“黑客”来获得预期的结果。以下代码适用于您:

$crud = new grocery_CRUD();
....

if( $crud->getState() == 'edit' ) { //add these only in edit form
    $crud->set_css('assets/grocery_crud/css/ui/simple/'.grocery_CRUD::JQUERY_UI_CSS);
    $crud->set_js_lib('assets/grocery_crud/js/'.grocery_CRUD::JQUERY);
    $crud->set_js_lib('assets/grocery_crud/js/jquery_plugins/ui/'.grocery_CRUD::JQUERY_UI_JS);
    $crud->set_js_config('assets/grocery_crud/js/jquery_plugins/config/jquery.datepicker.config.js');
}

$crud->callback_edit_field('phone',array($this,'_add_default_date_value'));

....
$output = $crud->render();
....


function _add_default_date_value($value){
    //The below line is only to avoid the error in JavaScript
    $return  = '<script type="text/javascript">var js_date_format = "dd/mm/yyyy"; </script>';

    $value = !empty($value) ? $value : date("d/m/Y");
    return $return.'<input type="text" name="phone" value="'.$value.'" class="datepicker-input" />';
}

答案 2 :(得分:2)

谢谢约翰!

我在添加输入页面中查找输入表单中显示的默认日期值。我对你的例子进行了一些修改

$crud = new grocery_CRUD();
....

if( $crud->getState() == 'add' ) { //add these only in add form
    $crud->set_css('assets/grocery_crud/css/ui/simple/'.grocery_CRUD::JQUERY_UI_CSS);
    $crud->set_js('assets/grocery_crud/js/jquery_plugins/config/jquery.datepicker.config.js');
}

$crud->callback_add_field('date',array($this,'_add_default_date_value'));

....
$output = $crud->render();

function _add_default_date_value(){
        $value = !empty($value) ? $value : date("d/m/Y");
        $return = '<input type="text" name="date" value="'.$value.'" class="datepicker-input" /> ';
        $return .= '<a class="datepicker-input-clear" tabindex="-1">Clear</a> (dd/mm/yyyy)';
        return $return;
}

有效!