【问题标题】:Joomla checkbox doesn't update databaseJoomla 复选框不更新数据库
【发布时间】:2013-08-30 09:51:41
【问题描述】:

我正在使用 Joomla 2.5,但在玩弄我的第一个组件时遇到了问题。

我在表单中使用以下字段集:

<fieldset>      
    <field
        name="person_id"
        type="hidden"
    />
    <field
        name="person_email"
        type="text"
        label="Email"
        description="Email"
        size="40"
        class="inputbox"
        default=""
    />
    <field
        name="person_notification"
        type="text"
        label="Notification"
        description="Notification"
        class="checkbox"
    />
</fieldset>

电子邮件字段按预期工作并更新数据库条目。通知字段让我很麻烦。该值未设置。

我已阅读有关此问题的 herehere。我试图从第二个链接调整方法 2,但它对我没有帮助。我试过的代码是:

<fieldset>      
    <field
        name="person_id"
        type="hidden"
    />
    <field
        name="person_email"
        type="text"
        label="Email"
        description="Email"
        size="40"
        class="inputbox"
        default=""
    />
    <input type="hidden" name="jform[person_notification]" value="0" />
    <input type="checkbox" name="person_notification" class="inputbox" />
</fieldset>

在这种情况下,复选框根本不可见,因为在我的 edit.php 中我使用了

<?php foreach($this->form->getFieldset() as $field): 
   if ($field->label!="") {
       echo '<li>'.$field->label.$field->input.'<br/></li>';
   } else {
       echo '<li>'.$field->input.'</li>';             
   }?>

所以我认为我必须调整方法2以使用field标签,但我不知道该怎么做。谁能告诉我,我必须如何定义我的文件集才能使其正常工作?我已阅读this SO 问题,但我不确定这是否正是我遇到的问题。

我知道使用单选按钮的可能性,但我的要求不允许这种解决方法。在我的情况下,更改核心 joomla 代码中的任何内容或更新到版本 3 也是不可能的。

【问题讨论】:

  • 我不确定它是否会有所作为,但您是否尝试过删除空格?所以试着把这个:name = "person_notification"改成这个name="person_notification"
  • @Lodder 不,不幸的是这并没有改变任何东西。
  • here 建议的解决方案怎么样?它在XML 中使用&lt;field&gt; 并覆盖模型的bind() 方法来处理未选中复选框的情况。

标签: php joomla checkbox joomla2.5


【解决方案1】:

我看不出有什么问题。

尝试使用 Joomla 组件创建器 http://www.component-creator.com 复制功能,看看有什么不同。

【讨论】:

  • @MasterAM 我试过这个,但没有用。我与创建者一起尝试了一个最小的示例并且它有效..而且它似乎生成了我之前尝试过的内容..一定犯了一个错误。谢谢你们俩。我自己再也不会尝试这种方法了,因为我认为这是错误的。
  • Joomla 复选框仅在选中复选框时才会返回一个值,您需要在代码中解决此问题;这就是为什么这么多扩展使用 type="list" 并将选项值设置为 0 和 1。尝试将其更改为列表类型,添加两个选项并查看您的代码是否按预期工作,这将是一个快速的解决方法。
猜你喜欢
  • 2014-03-03
  • 2014-05-10
  • 2014-07-09
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
相关资源
最近更新 更多