Multiselect Bug in the backend
In Magento version < 1.7.0.0-alpha1 it is not possible to empty a multiselect.
In the adminbackend in Magento is a bug, which prevents a multiselect to become empty.
<select>
A <select>
element is not submited, if no option is selected. To submit a value you need to render a <input type="hidden" />
element before it. This way, the variable is set in $_GET
or $_POST
and may be overwritten by the <select>
.
Bug in magento
This <input type="hidden" />
is not rendered before Version 1.7.0.0-alpha1.
Fix
Thanks to this thread I found a quick, good fix (as magento fixed it in versions > 1.7.0.0-alpha1):
// app/code/core/Mage/Adminhtml/Block/Widget/Form.php:203
} else if ($inputType == 'multiselect') {
$element->setValues($attribute->getSource()->getAllOptions(false, true));
$element->setCanBeEmpty(true); // add this line
The line number is from version 1.7.0.2