2011-08-10 337 views
0

當我有一個選擇的標籤,用戶可以選擇他們想要爲他們點擊哪些類型的曝光:變化值,選擇不同的選擇選項

<select name="exposure"> 
         <?php while($a = mysql_fetch_assoc($r)): ?> 
          <option value=""><?php echo $a['exposure']; ?></value> 
         <?php endwhile; ?> 
         </select> 

下面,我有另一種選擇標籤,即會顯示點擊次數從他們選擇的任何曝光類型採取值:

<select name="clicks"> 
         <?php while($a = mysql_fetch_assoc($r)): ?> 
          <option value=""><?php echo $a['amount']; ?></value> 
         <?php endwhile; ?> 
         </select> 

我的問題是:如何更改第二選擇標記值,根據任何用戶在第一次選擇了?

回答

0

這應該不是太難。您真正需要的是「曝光」值和「點擊」值之間的映射,以及將「點擊」值轉換爲有效標記的方法。你可以用下面的例子中玩耍上的jsfiddle:http://jsfiddle.net/ninjascript/5QPq5/

/** 
* Here's a map of possible values from 'exposure' and 
* related values for 'clicks'. 
*/ 
var map = { 
    "OptionA": ['A001','A002','A003'], 
    "OptionB": ['B001','B002','B003'] 
}; 

/** 
* A quick and dirty method to turn some values in the map 
* into a set of <option> tags. 
*/ 
function create(key) 
{ 
    var result = []; 
    if (map.hasOwnProperty(key)) { 
     for (var i = 0; i < map[key].length; i++) { 
      result.push('<option value="'+map[key][i]+'">'); 
      result.push(map[key][i]); 
      result.push('</option>'); 
     } 
    } 
    return result.join(''); 
} 

/** 
* Use jQuery to handle every 'change' event and add a new 
* set of <option> elements to the 'clicks' element. 
*/ 
$('select[name="exposure"]').live('change', function() 
{ 
    var options = create(this.value); 
    $('select[name="clicks"]').html(options); 
    $('div').html('<span>foo</span>'); // <-- Update some other element too 
}); 

編輯:jQuery.live()每當事件發生時將執行的功能。你可以在該函數中做任何你想做的事情,包括改變多個DOM元素的內容。

+0

謝謝,似乎工作。但是如果我想提交第三個值,但不是在選擇中,而是在DIV中?即一個價格,這個變化呢? –

+0

你可以在'change'事件處理程序中做任何你想做的事情。編輯:ack ...猜你不能在這裏添加代碼。我將編輯原始帖子。 – ninjascript