[英]Ajax Live Search Questions
因此,基本上已經問了很多遍了,但是我找不到我需要的答案。 基本上,我發現了很多網址,例如example.com/ajax/search?query=Thing
我的作品中有一些標題,目前使用的是W3schools XML版本,但它根本無法滿足我的需求,因為我需要使用它來基本上在IMDB中搜索用戶輸入的內容,一旦輸入例如“辛普森一家”然后它將以該名稱彈出所有搜索結果,並且該鏈接是IMDB鏈接的可點擊鏈接,例如http://www.imdb.com/title/tt0096697/,但隨后將該URL中的imdb.com替換為我的網站url(以某種方式使其具有響應性)。
但是我需要它以某種方式使用AJAX / jQuery,以便它在IMDB上進行搜索,因此使用此XML文件方法將無法工作。
帶有/ ajax / search的網站如何進行這種IMDB搜索,最近在洪流網站上使用很多。
這是我從中獲得當前搜索代碼的地方: 使用PHP AJAX和XML進行實時搜索
但是正如我所說的,它需要與Ajax一起運行,進行實時搜索,並基本上以某種方式在IMDB上抓取/搜索,然后將imdb.com更改為mysite.com。
更新:我設法找到了這樣的東西: http : //pastebin.com/PAD5AXUK
這是HTML:
<div class="main-nav-links hidden-sm hidden-xs">
<form method="GET" action="http://www.imdb.com/find" accept-charset="UTF-8" id="quick-search" name="quick-search">
<div id="quick-search-container">
<input id="quick-search-input" name="query" autocomplete="off" value="Quick search" type="search">
<div style="background-position: -160px 0px;" class="ajax-spinner"></div>
</div>
</form>
<ul class="nav-links">
<li> <a href="https://example.com"> Home </a>
</li>
<li> <a href="https://example.com/browse"> Browse </a>
</li>
</ul>
<ul class="nav-links nav-link-guest">
<li> <a class="login-nav-btn" href="javascript:void(0)"> Login </a> | <a class="register-nav-btn" href="javascript:void(0)"> Register </a>
</li>
</ul>
</div>
但它似乎仍然根本不起作用
您可以檢查一下。 https://twitter.github.io/typeahead.js/問題將會解決
至於IMDB的搜索,您將不得不使用php curl擴展之類的東西來從網站獲取內容,並使用html解析器庫對其進行解析。
對於實時搜索,您可以使用此pushState()函數更改javascript中的url,如以下答案所示: 使用javascript更改url 。 然后,您可以使用一些jQuery使其更輕松地將ajax獲取請求發送到您的OWN服務器,其中php腳本將處理對IMDB的請求(涉及
$.get("/ajax?query=TMNT", function(data) { //handle the data in here } );
然后,在該回調函數中,可以使用結果內容更新頁面。 您甚至可以在本地進行一些處理,例如更改IMDB鏈接的url。
該過程類似於下圖:
User Enters Query (TMNT) ->
Ajax sends data to my own backend page (process.php) ->
process.php scrapes IMDB search query and parses it with html parser ->
outputs results which return to ajax function ->
ajax callback function places results in a DOM element
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.