2012-04-12 139 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/

相关问题