gpt4 book ai didi

magento - 使 magento 管理字段依赖于多个值或字段?

转载 作者:行者123 更新时间:2023-12-04 07:01:48 25 4
gpt4 key购买 nike

首先我已经看到这个问题can a magento adminhtml field depend on more then one field or value?
它谈论系统/配置字段,这不是我要找的。

我正在尝试在 magento 后端创建一个表单。我有一个下拉菜单 下拉 值为 1、2 和 3。
当我选择 1 或 2 时,我需要显示字段 X。我该怎么做?

我能够根据下拉列表的单个值而不是多个值来显示 X。

这就是我所做的:

$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)
);

哪里 $x$dropdown是存储 addField() 的变量结果

最佳答案

你可以。

更多领域 :
只需添加更多依赖项:

->addFieldDependence($X->getName(), $dropdown_1->getName(), $value_dw_1)
->addFieldDependence($X->getName(), $dropdown_2->getName(),$value_dw_2)

更多值(相同字段) :
您应该传递一组值:
->addFieldDependence($X->getName(), $dropdown->getName(), array($value1,value2))

如果 $value1/$value2是数字,最好将它们转换为字符串,否则无法正常工作:
->addFieldDependence($X->getName(), $dropdown->getName(), array((string)$value1,(string)value2))

这个问题的原因可以在 js/mage/adminhtml/form.js中找到。在方法中 trackChange有一次你会看到这个代码:
...
// define whether the target should show up
var shouldShowUp = true;
for (var idFrom in valuesFrom) {
var from = $(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;
}
}
}
....

你会看到,以防万一 valuesFrom[idFrom]用于 indexOf检查是否显示该字段,这会导致问题,因为它认为 indexOf做一个比较照顾类型和 from.value它在数组 valuesFrom[idFrom] 中包含一个字符串我们有一个数字数组......

在单个值的情况下不会发生此问题,因为 from.value != valuesFrom[idFrom]不照顾类型

关于magento - 使 magento 管理字段依赖于多个值或字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23057305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com