2012-09-15 52 views
4

没有选择在我的组件“/models/fields/time.php”我有一个创建一个自定义字段类型用下面的PHP:的Joomla 2.5自定义字段列表中显示

defined('JPATH_BASE') or die; 

jimport('joomla.form.formfield'); 

class JFormFieldTime extends JFormField 
{ 
    protected $type = 'time'; 

    public function getInput() 
    { 
     return '<select id="'.$this->id.'" name="'.$this->name.'">'. 
     '<option value="08:00:00" > 8:00 AM</option>'. 
     '<option value="09:30:00" > 9:30 AM</option>'. 
     '</select>'; 
    } 
} 

和我course.xml (/models/forms/course.xml)为这样:

<field 
    name="starttime" 
    type="time" 
     label="COM_CEXPRESS_FORM_LBL_COURSE_STARTTIME" 
     description="COM_CEXPRESS_FORM_DESC_COURSE_STARTTIME" 
     required="true" 
     filter="safehtml" /> 

表单将保存数据库(9点30分00秒)内的正确的值,但是未选择正确的值=“选择”当表单显示时(8:00 AM)。但是,如果我将course.xml字段修改为:

<field 
     name="starttime" 
     type="list" 
     label="COM_CEXPRESS_FORM_LBL_COURSE_STARTTIME" 
     description="COM_CEXPRESS_FORM_DESC_COURSE_STARTTIME" 
     required="true" 
     filter="safehtml"> 
      <option value="08:00:00" > 8:00 AM</option> 
      <option value="09:30:00" > 9:30 AM</option> 
     </field> 

表单将正确显示(上午9:30)“选定”数据库值。我用的Joomla文件每本页面:

http://docs.joomla.org/Creating_a_custom_form_field_type

+0

问题仍然得不到解决?如果是这样,请提供更多有关您问题的内容。 –

回答

4

您必须getInput()设置自己所选择的选项。您可以通过$ this->值获取当前值。

而不是打印出自己的元素,你也可以采取使用的JHTML:

public function getInput() 
{ 
    $options = array(
     '08:00:00' => '8:00 AM', 
     '09:30:00' => '9:30 AM' 
    ); 

    return JHtml::_('select.genericlist', $options, $this->name, null, 'value', 'text', $this->value, $this->id); 
} 

+0

谢谢,Fnatte!很棒。 – ghires

+0

@Fnatte任何想法如何实现你的解决方案分组列表类型?我在这里开始了一个新的问题http://stackoverflow.com/questions/22660483/joomla-3-2-grouped-list-custom-field-list-doesnt-have-selected-value谢谢! – webchun

相关问题