2012-09-11 42 views
1

我有代碼(編輯後,布拉德·克里斯蒂建議):jQuery的屬性添加到多個選擇下拉菜單

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

它成功地增加了「選擇」屬性($ filter_color通過PHP添加)到所選擇的值。但是,當我的目標多個選擇領域是這樣的:

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

兩個循環無法正常工作!

感謝提示!

回答

2

上面的代碼顯然混合了javascript和php,但不可能告訴它可能有什麼問題。你應該檢查(通過在瀏覽器中查看源代碼)得到的JavaScript代碼是否是你想要的。如果可能的話在這裏發佈結果的JavaScript。

+0

啊是我的猜測..我不得不emtpy值,因爲在某些場合值不存在......我加入下isset整個循環首先檢查變量是否存在! Thanx – NenadP

1

我的教育猜測是,生成的JavaScript在輸出時是無效的。通過變量名猜測($filter_color & $filter_theme)其中一個(或兩者)很可能是一個字符串,使得測試if (...val() == string)失敗,這些問題導致整個JavaScript塊導致語法錯誤並且完全失敗。

試着改變你的輸出包住一個字符串值(可能像以下):

[snip].val() == "' . $filter_theme . '") {[/snip] 

通知我之前和PHP連接後加雙引號的變量的兩側。這應該修復語法應該實習再次工作。

再次,信息太少了你的問題,但是這將在解決方案

+0

嘿布拉德,對不起,現在我編輯了問題以顯示整個代碼,Javascript是由Drupal內聯添加的。當一個循環存在時,事情工作正常,當兩者都失敗時... – NenadP

+0

布拉德,這是沒有導致PHP值存在的問題!抱歉誤導你,謝謝! – NenadP

相關問題