2013-07-28 64 views
0

我开发了一个Joomla 2.5组件,几乎可以完成我想要的任务。我有一个包含带有2个单选按钮(“am”和“pm”)的fieldset的表单。基于其他信息,我一直无法弄清楚如何设置适当的按钮的'checked'属性。在定义表单字段的xml文件中设置默认值是很简单的,但我没有看到如何动态地执行此操作。如何动态设置单选按钮的'checked'属性。

有可能吗?我是否在文档中遗漏了会解释如何做到这一点的内容?

+0

能否请你告诉我在哪里你想添加这些单选按钮?我的意思是说,在创建我们的组件视图的菜单项时,在前端窗体或后端。 – atpatil11

+0

您可以添加表单的XML以及构建表单的PHP代码,以便我们获得答案的上下文。 – Craig

+0

对不起 - 我应该提到该表单用于管理后台。我没有在表单的xml中设置默认单选按钮。该组件管理一组可以显示在事件关联显示中的事件。单选按钮用于选择事件的时间是上午还是下午。 – user1390379

回答

1

如果你从视图加载的形式:在view.html你将被加载您的形式的显示()方法:

$this->form  = $this->get('Form'); 

此援引了在圈延伸joomla.application一个模型.component.modelform;它的getForm方法加载表单:

$form = $this->loadForm('com_yourcomp.model', ... 

这是我从您的描述中收集的内容。如果这不是你可能想加载表格后移动右下方的推荐代码的情况:这是完整的片段,允许您设置一个字段的值:

/// Load the form from the model: 

$this->form  = $this->get('Form'); 

    // Check for errors. 
    if (count($errors = $this->get('Errors'))) { 
     throw new Exception(implode("\n", $errors)); 
    } 

//... some logic ... 

    $this->form->setValue('businessid',null,$businessId); 

    $this->form->setFieldAttribute('businessid', 'readonly', 'true'); 
+0

setFieldAttribute应该是正确的调用,但是对于单选按钮,它对于我来说应该指示哪些按钮“已选中”,因为它们都具有相同的名称属性(jform [ starttime_ampm]) - 作为一组单选按钮应该...并且setFieldAttribute使用“名称”来确定要为其设置属性的字段。 我在想这可能是该方法的一个漏洞,因为单选按钮与其他类型的表单字段有点不同。 我可能不得不放弃并转到其他字段类型来设置/获取信息。 – user1390379

+0

不,它足够setValue('starttime_ampm',null,'am'); null代表我认为应该是空的组; 'am'是代表'am'的单选按钮的值,只需将你想要的任何值放在那里即可。最后一点考虑:你是否考虑编写一个自定义字段来输入日期/时间,这样你就可以将这个功能抵消到现场,然后这个功能会保存一个简单的日期时间,并且只有逻辑来增强显示/编辑 –

+0

@ Riccardo-Zorn的建议使用setValue是正确的。 技巧的另一部分似乎是,我不能在这个过程中使用 $ this-> form-> getValue('fielnamewhatever')检索表单值,但是我发现我可以使用 $ this - > item-> fieldnamewhatever ...这对我来说似乎有点奇怪...不应该“form-> getValue”方法检索字段值?不应该项目 - > fieldname什么是私人的? 谢谢Riccardo。我不确定如何为此回应提供信用。 – user1390379

相关问题