If you face any problem using this script, dont hesitate to write to me. I am always there to help you out...
Enjoy the live demo!
Live Demo Download Script
The HTML Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>WebSpeaks.in</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style> .main{ font-family:Tahoma; width:300px; margin-left:200px; height:500px; } .heading{ background-color:#2859AA; border:1px solid #121649; color:#FFFFFF; font-weight:bold; font-size:14px; padding:3px; text-align:center; } #search-text{ border:2px solid #435FBC; width:200px; height:20px; padding:3px; color:#A4A4A4; font-weight:bold; } .placeholder{ background-color:#E0E0E0; } .autocomplete{ width:200px; left:0px; top:-15px; position:relative; margin-left:-30px; } .autocomplete li{ font-size:12px; background-color:#728ADC; border-bottom:1px dotted #ffffff; color:#FFFFFF; padding:2px 0px 2px 5px; line-height:20px; display:block; margin: 0px; cursor: pointer; } .autocomplete li:hover, .selected{ font-weight:bold; background-color:#000000; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { var searchLabel = $('#search label').remove().text(); $('#search-text').addClass('placeholder').val(searchLabel) .focus(function() { if (this.value == searchLabel) { $(this).removeClass('placeholder').val(''); }; }).blur(function() { if (this.value == '') { $(this).addClass('placeholder').val(searchLabel); }; }); $('#search').submit(function() { if ($('#search-text').val() == searchLabel) { $('#search-text').val(''); } }); var $autocomplete = $('<ul class="autocomplete"></ul>').hide().insertAfter('#search-text'); var selectedItem = null; var setSelectedItem = function(item) { selectedItem = item; if (selectedItem === null) { $autocomplete.hide(); return; } if (selectedItem < 0) { selectedItem = 0; } if (selectedItem >= $autocomplete.find('li').length) { selectedItem = $autocomplete.find('li').length - 1; } $autocomplete.find('li').removeClass('selected').eq(selectedItem).addClass('selected'); $autocomplete.find('li').css({'backgroundColor':"#728ADC"}).eq(selectedItem).css({'backgroundColor':"#000000"}); $autocomplete.show(); }; var populateSearchField = function() { $('#search-text').val($autocomplete.find('li').eq(selectedItem).text()); setSelectedItem(null); }; $('#search-text').attr('autocomplete', 'off').keyup(function(event) { if (event.keyCode > 40 || event.keyCode == 8) { // Keys with codes 40 and below are special // (enter, arrow keys, escape, etc.). // Key code 8 is backspace. $.ajax({ 'url': 'autoComplete.php', 'data': {'search-text': $('#search-text').val()}, 'dataType': 'json', 'type': 'POST', 'success': function(data) { if (data.length) { $autocomplete.empty(); $.each(data, function(index, term) { $('<li></li>').text(term).appendTo($autocomplete) .mouseover(function() { setSelectedItem(index); }).click(populateSearchField); }); setSelectedItem(0); } else { setSelectedItem(null); } } }); } else if (event.keyCode == 38 && selectedItem !== null) { // User pressed up arrow. setSelectedItem(selectedItem - 1); event.preventDefault(); } else if (event.keyCode == 40 && selectedItem !== null) { // User pressed down arrow. setSelectedItem(selectedItem + 1); event.preventDefault(); } else if (event.keyCode == 27 && selectedItem !== null) { // User pressed escape key. setSelectedItem(null); } }).keypress(function(event) { if (event.keyCode == 13 && selectedItem !== null) { // User pressed enter key. populateSearchField(); event.preventDefault(); } }).blur(function(event) { setTimeout(function(){setSelectedItem(null);}, 250); }); }); </script> </head> <body> <div class="main"> <div class="heading">Facebook Like Search Box</div><br/> <form id="search"> <label for="search-text">search the site</label> <input type="text" name="search-text" id="search-text" /> </form> </div> </body> </html>
autoComplete.php
<?php if (strlen($_REQUEST['search-text']) < 1) { print '[]'; exit; } $terms = array( 'arvind', 'arvind b', 'arvind bhardwaj', 'arvind_bh', 'arvind07', // List continues... 'xaml', 'xoops', ); $possibilities = array(); $searchText=$_REQUEST['search-text']; foreach ($terms as $term) { if (strpos($term, strtolower($_REQUEST['search-text'])) === 0) { $possibilities[] = "'". str_replace("'", "\\'", $term) ."'"; } } print ('['. implode(', ', $possibilities) .']'); ?>
4 comments
sorry the demo is not working.
demo is not working. Plz check it
demo is not working. Plz check it
It Sucks
This article sucks... You have just used the jQuery auto complete....
We would love to hear from you...