2012-03-12 91 views
0

表單下方列出的每個製造商徽標都應該(單擊時)將選項值更改爲用戶單擊的任何值。例如:如果用戶點擊vulcan圖像,表單需要在表單提交之前使用VULCAN選擇選項進行更新。表單選項正在填入我在代碼中列出的數據庫查詢。這工作正常,所以沒有問題。使用Drupal 7 Form API更新表單的選擇選項

製造商的圖像由視圖模塊填充。爲了清楚起見,我還包含了這些設置的圖片。

所以我的問題是:什麼是讓這些製造商的圖像功能改變選定的選項的好方法?我的PHP很小巧,但我猜測它與使用Form API更改#default_value有關?

任何幫助將不勝感激!

View settings for Manufacturer Logos

This is a preview of the block I am working with.

function part_finder_form($form, &$form_state) { 
    $options = part_finder_form_get_manufacturer_list(); 
    $form['manufacturer'] = array(
    '#prefix' => '<span class="right_arrow"></span>', 
    '#type' => 'select', 
    '#required' => TRUE, 
    '#empty_option' => t('Start by selecting a manufacturer...'), 
    '#options' => $options, 

); 
$form['submit'] = array(
    '#type' => 'submit', 
    '#value' => 'Go', 
); 
return $form; 
} 

function part_finder_form_get_manufacturer_list() { 
    $options = array(); 
    $results = db_query("SELECT nid, title FROM {node} WHERE type = :type", array(':type' => 'rep_manufacturers')); 
    foreach ($results as $option) { 
    $options[$option->nid] = $option->title; 
} 

return $options; 
} 

回答

1

你可以做到這一點使用jQuery。

這裏是一個示例代碼。 (在此代碼我假設圖像標題存儲你需要傳遞給你選擇的值)

var images = jQuery('#image_wrapper img'); 
var select = jQuery('#manufacturer'); 
images.click(function() 
{ 
select.val(jQuery(this).attr('title')); 
}); 

您可以將此代碼添加到一個單獨的JavaScript文件,然後使用$其添加到窗體形成[ '#附']

$form['#attached']['js'] = array('PATH_TO_JS_FILE'); 

希望這對你的作品

穆罕默德。