我是新来的,所以如果我对我的问题做了任何不正确的事情,请温柔地"也许就我出错的地方提供指导。
根据标题,我正在尝试添加一个"多选#34;将字段转换为Joomla中的扩展,其中选项在管理员面板的项目视图中选择。 一切似乎都正确显示,但是当我保存项目时,所选项中唯一保存的选项是最后选择的选项。
以下是我在项目视图中使用的代码。
<?php if (count($this->multiselects) > 0): ?>
<?php foreach ($this->multiselects as $field): ?>
<li><label for="additional_multiselect[<?php echo $field->id ?>]"><?php echo $field->name ?></label>
<select multiple="multiple" name="additional_multiselect[<?php echo $field->id ?>]">
<option value=""></option>
<?php
$values = explode(PHP_EOL, $field->values);
foreach ($values as $v)
{
?>
<option value="<?php echo $v ?>"<?php if (trim($v) == trim($this->multiselect_values[$field->id])) echo 'selected="selected"' ?>><?php echo $v ?></option>
<?php
}
?>
</select>
</li>
<?php endforeach; ?>
<?php endif; ?>
我尝试在名称后添加[],但这似乎不起作用。我也尝试从字段的&gt; id部分删除它们并在最后添加它们,但这似乎不起作用。
有人能找到我出错的地方并指出我正确的方向吗?
答案 0 :(得分:1)
如果你想要多个值,你必须在输入名称的末尾使用[],否则你只会收到最后一个值。
<select multiple="multiple" name="additional_multiselect[]">
获得值后,可以使用print_r($ _ POST);或print_r($ _ GET); (取决于您的表单类型)以验证您已收到多个输入。然后,当您保存它们时,请确保您没有重叠每个项目,而是保存所有项目。 (您还没有显示保存代码)
答案 1 :(得分:1)
在您的选择名称中添加另一个[]
:
<select
multiple="multiple"
name="additional_multiselect[<?php echo $field->id ?>][]"
>
表单提交后,请检查您的$_POST
数组:
print_r($_POST);