Dave, I keep visiting sites and seeing these cool search boxes that let you either search their entire site or search the entire Google database, all without leaving that page! I want to have something like this and would appreciate your helping me figure out the code needed.
This is a question that’s going to result in some HTML listings. You know that, so there’s no reason to panic!
First off, the good news. Google itself actually has a nice page offering you HTML code you can just cut and paste onto your own Web pages to produce the search box you seek, and some variants beside. Just check out Google Free.
Instead of relying on the bright sparks at Google, though, let’s go through the steps of building our own search box instead, so you’ll be able to see how it works.
Also, not to pick on Google because I think the world of those folk, but their HTML samples could be cleaned up a bit, usually, so I’ve also recast it as proper XHTML rather than somewhat sloppy HTML. Just don’t tell Larry and Sergey, okay?
The basic technique involved here is to be able to manipulate one of the variables handed to the Google search engine, a variable called sitesearch. Set it to a null value and you’re searching the entire World Wide Web, but set it to a specific domain and it’s constrained exactly as if you had typed in the Google special notation site:domain.
In addition to that, you need an input field and a submit button. Put them all together and here’s the minimalist Google search form that lets the user alternate between just your site (well, in this case just my site) or the entire Web:
<form method="get" action="http://www.google.com/search"> <input type="text" name="q" size="31" maxlength="255" value="" /> <input type="submit" value="Google Search" /> <input type="radio" name="sitesearch" value="" /> The Web <input type="radio" name="sitesearch" value="askdavetaylor.com" checked /> Ask Dave Taylor<br /> </form>
There are some additional tweaks we can apply to make it a bit more fancy, including changing the radio buttons to a single check box, and aligning things a bit more nicely using a table and some simple CSS:
<form method="get" action="http://www.google.com/search"> <div style="border:1px solid black;padding:4px;width:20em;"> <table border="0" cellpadding="0"> <tr><td> <input type="text" name="q" size="25" maxlength="255" value="" /> <input type="submit" value="Google Search" /></td></tr> <tr><td align="center" style="font-size:75%"> <input type="checkbox" name="sitesearch" value="askdavetaylor.com" checked /> only search Ask Dave Taylor<br /> </td></tr></table> </div> </form>
Here’s how that renders when included on an HTML page:
If you’d like to use this on your own site, simply change the occurrences of askdavetaylor.com as appropriate.
Not too hard at all!
When I loaded your HTML code. It just did regular Google searhes, not site seraches
Did you change the [[ input type=”checkbox” name=”sitesearch” value=”askdavetaylor.com” checked /]] line to specify your own domain name, Dennis?
Hi Dave,
When I tried adding it to my website, it kept reloading the page instead of searching anything.
Do you know what might be happening?
Thanks,
Are you doing a “view source” and confirming that the copy/paste action hasn’t broken anything? Pay close attention to quotes; sometimes they go from “straight quotes” to curved ones, which will definitely break the HTML code.
Thanks for the great article and html. It looks great but does not search most words, wonder what could be the issue? I am using a template with list and it will search a few words but for most words it results in 0.
hi Dave
you have provided very good information of custom search box for ,keep it up and good going
ajay bhalerao
Hi, can you do the same thing with other sites like wikipedia or bing ?
How about this article: https://www.askdavetaylor.com/add_wikipedia_search_box_to_my_web_site_or_blog/
hi, when i insert your code into my script, it did work but not on all pages of my site. is it possible to have the search box on all my pages? thanks
Not sure why it would work on some pages but not others. What’s different about the pages where it doesn’t work? PHP? Entries vs Pages on WordPress?