2012-04-12 229 views
0

例如,選擇框顯示當一個選擇框選項被選擇的可變

<select> 
    <option selected="" value="">Please Select</option> 
    <option value='txt'>Text</option> 
    <option value='int'>Numbers</option> 
    <option value='bool' >Boolean</option> 
</select> 

有一個字符串

$messageList=array ('txt'=>'text message', 'int'=>'int message', 
        'bool'=>'bool message'); 

我想什麼實現是顯示當optition對應消息是選擇?

+0

顯示相應的消息怎麼樣?在警報框中?在另一個元素? – 2012-04-12 17:20:18

回答

4

我不知道PHP,但首先我想你需要使用json_encode將php數組轉換爲javascript對象。 http://php.net/manual/en/function.json-encode.php

<?php 
    $messageList=array ('txt'=>'text message', 'int'=>'int message','bool'=>'bool message'); 

    echo var msgs = json_encode($messageList); 
?> 

然後在JavaScript中,

$('select').change (function() { 
    alert(msgs[$(this).val()]); 
}); 

而且你需要選擇一個class/id。因爲當您更改頁面中任何選擇框的選項時,上述代碼將被觸發。

+0

如果消息是由數據庫查詢,該怎麼辦?它是如何工作的 – user782104 2012-04-12 18:11:37

+0

@ user782104正如我前面提到的,我不是一個PHP的傢伙..但如果你有數據庫返回有類似的結果,然後'json_encode'會給你的JavaScript對象,你可以在你的JavaScript的。 – 2012-04-12 18:19:47

+0

而不是警告如何顯示在屏幕上像HTML內容? – user782104 2012-04-13 05:32:16

0

假設您發佈的數組本來是一個JavaScript對象(好像你正在使用PHP的聯合數組的符號):

​var sel = document.getElementsByTagName('select')[0], 
    $messageList= { 
    'txt' : 'text message', 
    'int' : 'int message', 
    'bool' : 'bool message' 
    }; 

sel.onchange = function(){ 
    var selected = this.value; 
    alert($messageList[selected]); 
};​​ 

JS Fiddle demo

0

如果你想用jQuery做到這一點:

$messageList= { 'txt':'text message', 'int':'int message','bool':'bool message' }; 

$('#choices').change(function() { alert($messageList[ $(this).val() ]); });​ 

JFiddle這裏:

http://jsfiddle.net/yCHqy/

相關問題