我有代码(在Brad Christie建议之后编辑):
drupal_add_js('
jQuery(document).ready(function(){
jQuery("#selFinishes option").each(function(index) {
if (jQuery(this).val() == ' . $filter_color . ') {
jQuery(this).attr("selected","selected")
}
})
});
', "inline");
它成功地将“selected”属性(通过PHP添加$ filter_color)添加到所选值。但是当我定位多个这样的选择字段时:
drupal_add_js('
jQuery(document).ready(function(){
jQuery("#selFinishes option").each(function(index) {
if (jQuery(this).val() == ' . $filter_color . ') {
jQuery(this).attr("selected","selected")
}
})
jQuery("#selThemes option").each(function(index) {
if (jQuery(this).val() == ' . $filter_theme . ') {
jQuery(this).attr("selected","selected")
}
})
});
', "inline");
两个循环都无法正常工作!
感谢您的提示!
答案 0 :(得分:2)
上面的代码显然混合了javascript和php,但不可能告诉它可能有什么问题。您应该检查(通过在浏览器中查看源代码)生成的javascript代码是否符合您的意图。如果可能,请在此处发布生成的javascript。
答案 1 :(得分:1)
我有根据的猜测是,生成的JavaScript在输出时无效。通过变量名称($filter_color
& $filter_theme
)进行猜测它们中的一个(或两个)很可能是一个字符串,使得测试if (...val() == string)
失败,这使得整个块成为JavaScript会导致语法错误并完全失败。
尝试更改输出以将值包含在字符串中(可能类似于以下内容):
[snip].val() == "' . $filter_theme . '") {[/snip]
注意我在PHP连接之前和之后在变量的任一侧添加了双引号。这应该可以解决实习使其再次工作的语法。
同样,问题中的信息太少,但这是我对解决方案的猜测