2016-02-03 3 views
0

У меня возникла проблема с перенаправлением результатов поиска на страницу, на которой я хочу отображать результаты. Хотите иметь панель поиска в заголовке, чтобы мои результаты отображались на странице результатов или что-то подобное. Все было сделано с помощью учебника (Laracasts), все еще изучающего javascript, поэтому я немного застрял здесь. Некоторая помощь была бы замечательной!Algolia перенаправить к результатам поиска

index.blade.php

<script src="http://code.jquery.com/jquery.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js"></script> 
<script src="http://cdn.jsdelivr.net/algoliasearch/3/algoliasearch.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/0.12.1/vue.js"></script> 
<script> 
    new Vue({ 
     el: 'body', 

     data: { 
      query: '', 
      users: [] 
     }, 

     ready: function() { 
      this.client = algoliasearch('', ''); 
      this.index = this.client.initIndex('test_drive_contacts'); 


      $('#typeahead').typeahead(null, { 
         source: this.index.ttAdapter(), 
         displayKey: 'firstname', 
         templates: { 
          suggestion: function (hit) { 
           return '<div>' + 
             '<h4 class="high">' + hit._highlightResult.firstname.value + '</h4>' + 
             '<h5 class="high">' + hit._highlightResult.company.value + '</h5>' 
             + '</div>'; 
          } 
         } 
        }) 
        .on('typeahead:select', function (e, suggestion) { 
         this.query = suggestion.firstname; 
        }.bind(this)); 
     }, 


     methods: { 
      search: function() { 
       this.index.search(this.query, function (error, results) { 
        this.users = results.hits; 
       }.bind(this)); 
      } 
     } 
    }); 

</script> 

Это поиск вход:

<input id="typeahead" type="text" class="form-control" v-model="query" 
            v-on="keyup: search | key 'enter'"> 

<article v-repeat="user: users"> 
    <h2>@{{ user.firstname }}</h2> 
    <h4>@{{ user.company }}</h4 
</article> 
+1

Я сожалею, я не понимаю ваш вопрос. Не могли бы вы прояснить это? – Jerska

+0

Когда я набираю поисковый запрос, как мне перенаправлять, чтобы результаты показывались на странице, которую я хочу. Теперь он отображается под моим поисковым вводом. Не знаю, как перенаправить результаты, назовем его «страницей результатов». Надеюсь, я объяснил это лучше сейчас. –

+0

Я до сих пор не знаю, о чем вы просите. Перенаправление в JavaScript так же просто, как и «window.location = url». Ваш код уже использует событие 'typeahead: select', в котором вы хотите перенаправить. – Jerska

ответ

0

Перенаправление пользователей на страницу в JavaScript так же легко, как делать

window.location = 'your_url_here' 

Если вы 'просто ищет перенаправление на страницу /search?q=query, когда пользователь вводит Ent er, это так же просто, как и перенос ввода, который вы используете внутри формы.

<form action="/search" method="GET"> 
    <input type="search" id="your-input" name="q" /> 
</form> 

Если вы хотите перенаправить на страницу товара, то typeahead:select событие дает выбранный вариант:

$('#your-input') 
    .typeahead(/* ... */) 
    .on('typeahead:select', function (e, suggestion) { 
    window.location = suggestion.url; 
    }); 
Смежные вопросы