2017-06-16 187 views
-1

我有一個jQuery UI自動完成的問題,我試圖解決大量的研究,只解決了它偏。我已經成功地使其與該代碼在所有的工作:在AJAX/JSON jQuery UI自動完成

$("#term").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: "https://wger.de/api/v2/exercise/?format=json", 
      type: "GET", 
      data: { name: request.term }, 
      dataType: "json", 
      success: function(data) { 
       response($.map(data, function(item) { 
        return { 
         label: item, 
         value: item 
        } 
       })); 
      } 
     }); 
    } 
}); 

我用JSON的開源API的工作,這裏有一個例子:

{ 
    "count": 1, 
    "next": null, 
    "previous": null, 
    "results": [ 
    { 
     "id": 436, 
     "license_author": "Andrew Carothers", 
     "status": "1", 
     "description": "<p>1 Minute for each exercise</p>\n<ol>\n<li>Hold feet 6 inches off ground</li>\n<li>Crunches</li>\n<li>Side Crunches (L)</li>\n<li>Side Crunches (R)</li>\n<li>Heel Touches</li>\n<li>Plank Crunch</li>\n<li>Scissor Kicks</li>\n<li>Swim Kicks</li>\n<li>V Crunches</li>\n<li>Hold feet 6 in off ground</li>\n</ol>\n<p>Exercises can be substituted to vary workout</p>", 
     "name": "10 Min Abs", 
     "name_original": "10 Min Abs", 
     "creation_date": "2016-12-09", 
     "uuid": "3c5f6e1c-cb22-4a9f-a13e-d14afeb29175", 
     "license": 2, 
     "category": 10, 
     "language": 2, 
     "muscles": [], 
     "muscles_secondary": [], 
     "equipment": [] 
    } 
    ] 
} 

我想自動完成建議使用JSON中的「名稱」的字母,但是我得到了完整的JSON數組,即使使用了不存在的對象。我已經試過item.results[0].name,但我得到的一切都是TypeError: item.results is undefined如何修改$.ajax以獲取自動填充建議中的JSON對象的「名稱」值

感謝您的任何幫助。

+0

你所得到的錯誤提示,數據對象,你給我們的不是你在接受什麼。如果沒有真實的數據表達方式,我們無法幫助您。 –

+0

@KevinB那麼,我每次檢查Firefox的網絡監視器,我都會獲得json類型的良好URL,例如https://wger.de/api/v2/exercise/?format=json&name=10+Min+Abs – oskarwilczynski

+0

data.results.map(... –

回答

-1

做這項工作:

$("#term").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "https://wger.de/api/v2/exercise/?format=json", 
       type: "GET", 
       data: { name: request.term }, 
       dataType: "json", 
       success: function(data) { 
        response($.map(data.results, function(index,item) { 
         return { 
          label: item.name, 
          value: item.name 
         } 
        })); 
       } 
      }); 
     } 
    }); 
+0

不,我已經試過,並且響應是'TypeError:item is null' – oskarwilczynski

+0

in $ .each callback first arg is index and second is the value,sorry my bad –

+0

好吧,它可以工作,但是隻有在輸入中輸入100%正確的名稱時纔會出現該建議,因爲該腳本正在尋找不存在的JSON數組,所以它沒有在名稱正確之前提供任何建議。 – oskarwilczynski