2012-04-12 5 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

дисплей соответствующее сообщение, как? В окне предупреждения? В другом элементе? –

ответ

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

+0

@ user782104 Как я уже упоминал ранее, я не php-парень .. но если у вас есть возврат базы данных, то аналогичный результат, тогда 'json_encode' предоставит вам объект javascript, который вы можете использовать в своем JavaScript. –

+0

вместо предупреждения, как я могу отображать на экране, как html-контент? – user782104

0

Предполагая, что массив вы вывесили должен был быть объект JavaScript (это, кажется, вы использовали ассоциативный массив обозначений РНР):

​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/

Смежные вопросы