
Originally Posted by
gloerick
Hello,
Thank you for the response, and it seems to all be in place now, but is not working, can you please take a look at
www.efpsupply.com and try the search and let me know as I see no differance in the search.
Thx Much,
Erick
Hi,
searches.php works fine cut and paste the following link into your browser and it will push some results
:
http://www.efpsupply.com/searches.php?query=lind
All your files are in their correct places
:
I think the problem could lie in instantSearch.js for your spacific site it may be in conflict with other scripts in your site (i think)
.
Try this on your offline site (not live):
open instantSearch.js delete everthing and replace it with the following code bellow, then refresh the page a msg box should pop up.
try entering 1 letter into the search box and another 2 msgbox should popup.
reply back with result!
//replace with this test code bellow
Code:
/**
* @package Instant Search Results
* @copyright Copyright Ayoob G 2009-2011
* @copyright Portions Copyright 2003-2006 The Zen Cart Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
*/
//This jScript file is used to create our instant search box
//these var's will be used to maintain multiple request
var runningRequest = false;
var request;
//if you want to manually position the result box you can set autoPosition to false
//but make sure to provide the top and left value in instantSearch.css
var autoPosition = true;
var inputboxCurrent;
//checks to see if the document has loaded and is ready
$(document).ready(function () {
//this will apply the instant search feature to all the search boxes
var inputBox = $('input[name="keyword"]');
alert("step1, if see some code then this bit works:" + inputBox.parent().html());
//if you want to add instant search to only a specific box then comment out the var inputBox above
//and uncomment out the specific search box selector bellow:
//var inputBox = $('#navMainSearch > form[name="quick_find_header"] > input[name="keyword"]');
//var inputBox = $('#navColumnTwoWrapper > form[name="quick_find_header"] > input[name="keyword"]');
//var inputBox = $('#searchContent > form[name="quick_find"] > input[name="keyword"]');
//this adds a instant search container bellow the search box
inputBox.before('<div class="resultsContainer"></div>');
inputBox.attr('autocomplete', 'off');
//re-position all the instant search container correctly into their places
if (autoPosition == true){
inputBox.each(function (index) {
var offset = $(this).offset();
$(this).prev().css("left", offset.left + "px");
$(this).prev().css("top", ($(this).outerHeight(true) + offset.top) + "px");
});
}
//if the search box losses focus, then the instant search container will be hidden
inputBox.blur(function () {
if (inputboxCurrent) {
var resultsContainer = inputboxCurrent.prev();
resultsContainer.delay(300).slideUp(200);
}
});
//if we resize the browser or zoom in or out of a page then the instant search container will be hidden
$(window).resize(function() {
if (inputboxCurrent) {
var resultsContainer = inputboxCurrent.prev();
resultsContainer.hide();
}
});
//the user starts to enter a few characters into the search box
inputBox.keyup(function () {
alert("step2 keyup works");
//only the currently selected search box will be used
inputboxCurrent = $(this);
//assign a variable to the instant search container
var resultsContainer = $(this).prev();
//we capture the words that are being typed into the search box
var searchWord = $(this).val();
var replaceWord = searchWord;
//we clean up the word for any unnecessary characters or double spaces
searchWord = searchWord.replace(/^\s+/, "");
searchWord = searchWord.replace(/ +/g, ' ');
if (searchWord == "") {
//if the search value entered is empty, we then hide the instant search container
resultsContainer.hide();
} else {
//if multiple requests are sent to the server, we then abort any previous request, before a new request is sent
//this only comes in use if user is a fast typer
if (runningRequest) {
request.abort();
}
runningRequest = true;
//we then pass on the search word to searches.php
//searches.php will then look for all the search results
request = $.getJSON('searches.php', {query: searchWord}, function (data) {
alert("step3 data length is " + data.length);
if (data.length > 0) {
var resultHtml = '';
$.each(data, function (i, item) {
//if any search result are found, a link will be created and placed into the instant search container
resultHtml += '<li><a href="' + generateLink(item.pc,item.l) + '"><span class="alignRight">' + formatNumber(item.c) + '</span>' + highlightWord(replaceWord,item.q) + '</a></li>';
});
//fill the container with the matching products and categories
resultsContainer.html('<ul>'+resultHtml+'</ul>');
if (!resultsContainer.is(':visible')) {
//auto position container if needs be
if (autoPosition == true){
autoPositionContainer(inputboxCurrent, resultsContainer);
}
//drop down instant search box
resultsContainer.slideDown(100);
}
} else {
resultsContainer.hide();
}
runningRequest = false;
});
}
});
});
//this function auto positions the container
function autoPositionContainer(inputBoxCurr, resltsContainer){
var offsetInput = inputBoxCurr.offset();
var overFlow = offsetInput.left + resltsContainer.outerWidth(true);
var winWidth = $(document).width();
if (overFlow > winWidth){ // this checks to see if the container overflows on the right of the window
var dif = overFlow - winWidth;
if ((offsetInput.left - dif) < 0){// this checks to see if the container overflows on the left of the window
resltsContainer.css("left", 0 + "px");
}else{
resltsContainer.css("left", (offsetInput.left - dif) + "px");
}
}else{
resltsContainer.css("left", offsetInput.left + "px");
}
resltsContainer.css("top", (inputBoxCurr.outerHeight(true) + offsetInput.top) + "px");
}
//this function creates the link back to the matching products or categories
function generateLink(productORcategory, productCategoryID)
{
var l = "";
if (productORcategory == "p"){
l = "index.php?main_page=product_info&products_id=" + productCategoryID;
}else{
l = "index.php?main_page=index&cPath=" + productCategoryID;
}
return l;
}
function highlightWord(findTxt,replaceTxt)
{
var f = findTxt.toLowerCase();
var r = replaceTxt.toLowerCase();
var regex = new RegExp('(' + f + ')', 'i');
return r.replace(regex, '<span class="thinFont">' + f + '</span>')
}
function formatNumber(num)
{
return num.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
Bookmarks