Я немного застрял в куске кода. У меня есть поле поиска, которое вызывает функцию PHP, которая выглядит в базе данных:Сохранить и получить результаты поиска
$this->_helper->layout->disableLayout();
$q = $this->getRequest()->getParam('q');
$product_db = new Products();
$this->view->products = $product_db->searchProduct($q);
foreach($this->view->products as $product)
{
....
}
В результате этого загружается в моем HTML страницы с помощью JQuery:
var searchItem = function() {
if($('#json_search').val())
{
$('#search-resultlist').load('/search/quick/q/'+ $('#json_search').val());
}
else {
$('#search-resultlist').html('');
}
}
HTML:
<div class="right-searchcontent" >
<input type="text" class="form-control" placeholder="Search ... " id="json_search">
</div>
<div class="right-searchresult">
<ul id="search-resultlist" >
<li >
</li>
</ul>
</div>
Теперь в основном я пытаюсь добиться создания «истории поиска». Сначала я попробовал с массивом SESSION в моем поиске контроллера:
if(!isset($_SESSION['history'])) {
$_SESSION['history'] = array();
}
И в моей функции, чтобы показать результаты поиска по базе данных:
if(!empty($product)){
if(!in_array($product->naam, $_SESSION['history']))
{
$_SESSION['history'][] = $product->naam;
}
}
Но это хранение всех значений я когда-либо искали для (например: 'sk', 'ah') Мне просто нужны значения, на которые я действительно нажал.
Может ли кто-нибудь указать мне правильное направление?
Я пытался добиться своего результата с помощью localStorage, но это не дало мне правильного решения. Кроме того, я попытался с помощью Cookies с помощью этой функции:
var cookieList = function(cookieName) {
var cookie = $.cookie(cookieName);
var items = cookie ? cookie.split(/,/) : new Array();
return {
"add": function(val) {
//Add to the items.
items.push(val);
//Save the items to a cookie.
$.cookie(cookieName, items.join(','));
},
"remove": function (val) {
indx = items.indexOf(val);
if(indx!=-1) items.splice(indx, 1);
$.cookie(cookieName, items.join(',')); },
"clear": function() {
items = null;
//clear the cookie.
$.cookie(cookieName, null);
},
"items": function() {
return items;
}
}
}
Но когда я попытался предупредить list.items он только что вернулся мне весь метод.
я могу достигнуть название продукта, когда я нажимаю, но я просто не знаю, как я могу хранить это в сессию или что-то еще, что я могу достигнуть в любое время на любой странице ..
вы можете использовать JQuery и куки для хранения те, которые кликали в печенье –
Сегодня утром я играл с куки-файлами, но я не мог правильно это сделать. Я отредактировал свой вопрос и добавил функцию, которую я использовал для файлов cookie. – Matheno
'alert (list.items())', а не 'alert (list.items)' –