2015-04-22 5 views
1

Я хочу сделать поиск getJSON на основе выбранной опции. Например: если я выбираю итальянский в меню выбора, я хочу, чтобы запрос getJSON выглядел как json.w1.Italian.jquery getJSON на основе выбранной опции

Я знаю, что этот код неправильный, поэтому я прошу о помощи.

Вот код:

<select name="language"> 
    <option selected="selected" value="english">English</option> 
    <option value="german">German</option> 
    <option value="spanish">Spanish</option> 
    <option value="italian">Italian</option> 
    <option value="french">French</option> 
    <option value="portuguese">Portuguese</option> 
    <option value="dutch">Dutch</option> 
    <option value="romanian">Romanian</option> 
    <option value="greek">Grek</option> 
    <option value="bulgarian">Bulgarian</option> 
</select> 
<div id="language"></div> 

<div id="results"></div> 

<script> 
    $("select") 
     .change(function() { 
      var str = ""; 
      $("select option:selected").each(function() { 
       str += $(this).text() + " "; 
      }); 
      $("#language").text(str); 

      var query = json.w1.str; 

      $.getJSON("lang.json", function(json) { 
       $("#results").text(query); 
      }); 
     }) 
     .change(); 
</script> 
+0

Не совсем понимаю, что вы имеете в виду. Вы имеете в виду, что ваши json.w1 имеют такие атрибуты, как 'json.w1.dutch',' json.w1.greek', 'json.w1.english' и т. Д., И вы хотите получить значение на основе выбора пользователя? Если этого хотите, то вы можете использовать 'var query = json.w1 [str];'. –

ответ

1

Ваш код намного сложнее, чем это должно быть - чтобы получить выбранное значение select вы можете просто позвонить val(). Затем вы можете использовать нотацию в виде скобок для извлечения элемента из объекта с использованием ключа в виде строки. Попробуйте следующее:

$('select').change(function() { 
    var lang = $(this).val(); 
    $("#language").text(lang); 
    $.getJSON('lang.json', function(json) { 
     $('#results').text(json.w1[lang]); 
    }); 
}).change(); 
0

У вас, похоже, есть много кода, который вам не нужен в вашем примере. Не видя вашего результата, я думаю, вам нужно что-то подобное.

https://jsfiddle.net/vpeLq3k4/

$("select") 
    .change(function() { 
    var lang = $("select option:selected").val(); 
    $("#language").text(lang); 
    $.getJSON("lang.json", function(json) { 
     $("#results").text(json.w1.lang); 
    }); 
}); 

Если вы размещаете пример того, что JSON возвращается, мы, вероятно, может помочь немного больше.

+0

Если я выберу испанский язык в своем HTML-коде, я хочу, например, распечатать Casa. Вот краткий пример моего файла JSON: { "w1": {"English": "House", "German": "Haus", "Spanish": "Casa"} } – Borut

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