2012-06-24 3 views
0

API в моем примере возвращает идентификатор, имя паруВыберите опцию из API вызова

<categories> 
    <category id="5" name="Bollywood"/> 
    <category id="484" name="International"/> 
    ... 
    </categories> 

Я пытаюсь иметь выпадающее меню, что позволяет пользователю выбрать один из вариантов

<select class="action" id="categoryEvent" onchange="change(value)" style="display: block"> 
    <script type="text/javascript"> 
     var url = "http://api.hungama.com/metroapp/categories.php?format=json"; 
     var id,name; 
     var data = JSON.parse(url); 
     data.category.forEach(function (content) { 
    </script> 
    <option value="id">name</option> //id, name from api 
    <script type="text/javascript"> 
     } 
    </script> 

Что я делаю неправильно ?

+1

'<тип скрипта = "текст/JavaScript">}' .... это не может быть правым. Элементы сценария должны иметь синтаксически действующий код самостоятельно. Таким образом, в этом случае оба элемента вашего скрипта игнорируются. Кроме того, 'JSON.parse' анализирует строку, она не делает никаких запросов. – Esailija

+0

Это не PHP, вы не можете этого сделать. –

+0

Я хочу использовать API-интерфейс hungama в своем приложении. Можете ли вы рассказать мне о процедуре получения доступа к API. – VickyS

ответ

1

Похоже, это то, что вы хотите:

<select class="action" id="categoryEvent" onchange="change(value)"></select> 
<script type="text/javascript"> 
    var url = "http://api.hungama.com/metroapp/categories.php?format=json"; 
    var id, name; 
    var xhr; 
    if (window.XMLHttpRequest) { 
     xhr = new XMLHttpRequest(); 
    } else { 
     xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4 && xhr.status == 200) { 
      var res = JSON.parse(xhr.responseText), 
       data = res.category; 
      for(var i = 0; i < data.length; i++) { 
       var ele = document.createElement("option"); 
       ele.value = data[i].id; 
       ele.innerHTML = data[i].name; 
       document.getElementById("categoryEvent").appendChild(ele); 
      } 
     } 
    } 
    xhr.open("GET", url, true); 
    xhr.send(); 
</script> 
+0

'JSON.parse (" http://api.hungama.com/metroapp/categories.php?format=json ")' не то, что хочет: P – Esailija

+0

Я не совсем то, что он там делает ... выглядит как вызов AJAX. –

+0

Он хочет сделать запрос JSONP, а затем обработать результат, который требует еще некоторого кода: P Вы не просто 'JSON.parse' некоторый url, и пусть он работает. Он выдает синтаксическую ошибку ... Ури даже не отвечает с JSONP и не имеет заголовков CORS. Так что игра слишком много, если это не его домен. – Esailija

0

Внутри html-документа вы должны объявить элемент select html с одной стороны и элемент сценария на другом.

Например:

<select class="action" id="categoryEvent" onchange="change(value)"> 
</select> 

<script type="text/javascript"> 
//manipulate the select 
var select = document.getElementById("categoryEvent"); 
var newOption = document.createElement("option"); 
select.appendChild(newOption); 
</script> 
Смежные вопросы