Making magento admin field dependent on more than one value or field? -
first of have seen question can magento adminhtml field depend on more 1 field or value? talks system/configuration fields, not looking for.
i trying create form in magento backend. have dropdown dropdown values 1, 2 , 3. need field x displayed when select 1 or 2. how do ?
i able display x depending on single value of dropdown, not multiple values.
this how have done:
$this->setchild('form_after',$this->getlayout()->createblock('adminhtml/widget_form_element_dependence') ->addfieldmap($x->gethtmlid(), $xl->getname()) ->addfieldmap($dropdown->gethtmlid(), $dropdown->getname()) ->addfielddependence($x->getname(), $dropdown->getname(), 1) );
where $x
, $dropdown
variables stores addfield()
result
you can.
more fields:
add more dependency:
->addfielddependence($x->getname(), $dropdown_1->getname(), $value_dw_1) ->addfielddependence($x->getname(), $dropdown_2->getname(),$value_dw_2)
more values (same field):
should pass array of of values:
->addfielddependence($x->getname(), $dropdown->getname(), array($value1,value2))
if $value1/$value2
numbers better cast them string or not work properly:
->addfielddependence($x->getname(), $dropdown->getname(), array((string)$value1,(string)value2))
there reason issue can tracked down in js/mage/adminhtml/form.js
in method trackchange
@ 1 point see code :
... // define whether target should show var shouldshowup = true; (var idfrom in valuesfrom) { var = $(idfrom); if (valuesfrom[idfrom] instanceof array) { if (!from || valuesfrom[idfrom].indexof(from.value) == -1) { shouldshowup = false; } } else { if (!from || from.value != valuesfrom[idfrom]) { shouldshowup = false; } } } ....
you see in case valuesfrom[idfrom]
used indexof
check if show field or not, cause problem because, think, indexof
comparison taking care of type , from.value
contains string while in array valuesfrom[idfrom]
have array of numbers ...
this issue not occur in case of single value because from.value != valuesfrom[idfrom]
not taking care of type
Comments
Post a Comment