如何从帮助程序中获取数据库中的内容

时间:2014-02-19 05:48:50

标签: codeigniter

嗨:在选择框的代码点火器中,我想显示数据库中的内容。我无法从数据库接收内容。如何使用帮助器显示。如果我使用帮助器,我会收到以下错误。怎么做同样的。

Fatal error:  Using $this when not in object context in G:\xampp\htdocs\lokalpickup_ci\admin\application\helpers\lib_helper.php on line 79 

1 个答案:

答案 0 :(得分:0)

我认为您的问题是使用$ this。实际上在帮助器中不能在CodeIgniter中使用$ this。你需要将实例变为某个变量然后可以像$ this一样使用它。

    $CI = & get_instance();
    $CI->load->model('Dynamic_dropdown', 'dd_model');

我从PHP代码生成器生成的动态选择控件获得以下代码。你可以使用这样的东西。

    function form_dynamic_dropdown($tablename, $fieldDetails, $valueColumn, $displayColumn, $default='') {
        if (!is_array($fieldDetails)) {
            log_message('error', 'Field details should be an array for dynamic dropdown', TRUE);
            return;
        }
        $field_properties = '<select';
        foreach ($fieldDetails as $key => $value) {
            $field_properties .= ' ' . $key . ' = \'' . $value . '\'';
        }
        $field_properties .= '>';

        $CI = & get_instance();
        $CI->load->model('Dynamic_dropdown', 'dd_model');
        $field_properties .= '<option value=\'\'>';
        $field_properties .= 'Select';
        $field_properties .= '</option>';

        if(isset($fieldDetails['name']) && isset($_POST[$fieldDetails['name']]))
            $default = $_POST[$fieldDetails['name']];

        $condition = array();
        $results = $CI->dd_model->search($condition, $tablename);
        foreach ($results as $result) {
            if ($result->$valueColumn == $default)
                $field_properties .= '<option value=\'' . $result->$valueColumn . '\' selected>';
            else
                $field_properties .= '<option value=\'' . $result->$valueColumn . '\'>';
            $field_properties .= $result->$displayColumn;
            $field_properties .= '</option>';
        }
        $field_properties .= '</select>';
        return $field_properties;
    }