Aleeza
Newbie

Posts: 7
|
 |
« Reply #2 on: May 30, 2007, 07:05:14 PM » |
|
Thanks for this.
I managed to piece together something that works the way I want it to but now I can't get the Search Box to appear on the page. As you can probably see from the way I've done this, I'm new to this and would really appreciate any help.
In the example the word to search for is "plant"
<HTML><HEAD><TITLE>Search Page</TITLE></HEAD><STYLE TYPE=text/css></STYLE></HEAD><FORM NAME="database"><INPUT TYPE="hidden" NAME="list" VALUE='ABC
<title><A href="PAGE LINK GOES HERE.htm">Plant Nurseries</A><keys>Bulb propagating, Fruit tree nursery operation, Ornamental plant growing, Plant stock growing n.e.c., Seedling growing, Turf growing, Vine stock nursery operation.</p><content><url>ABC
<title>Result 2<keys> Plant growing, Plant stock growing <p><content><url>ABC
<title>Result 3<keys>Plant growing</p><content><url>ABC
'> </FORM>
<script language="JavaScript"> <!-- function Page(url,title,keywords,description) { while ((url.length > 0) && (url.charAt(0) == " ")) { url = url.substring(1,url.length); } this.url = url; while ((title.length > 0) && (title.charAt(0) == " ")) { title = title.substring(1,title.length); } this.title = title; this.keywords = keywords; this.description = description; return this; } function Database() { var pos = 0; //*htm link~Page Title|Title^description* //<url>htm link<title>Page Title<keys>Title<content>description while ((pos1 = amorphous.indexOf("<title>",pos)) != -1) { pos2 = amorphous.indexOf("<keys>",pos1+1); pos3 = amorphous.indexOf("<content>",pos1+1); pos4 = amorphous.indexOf("<url>",pos3+1);
if ((pos2 != -1) && (pos2 < pos3) && (pos3 < pos4) && (pos4 <= amorphous.indexOf("<url>",pos))) { this[database_length++] = new Page(amorphous.substring(pos,pos1), amorphous.substring(pos1+7,pos2), amorphous.substring(pos2+6,pos3), amorphous.substring(pos3+9,pos4)); pos = pos4+1; } else { // error reading amorphous database if (pos+30 <= amorphous.length) alert('Error reading in amorphous database around "' + amorphous.substring(pos,pos+30) + '"'); pos = amorphous.indexOf("<url>",pos) + 5; } } return this; } function search(str) { menu_length = 0; temp = new Object(); temp_length = 0; words_length = 0; words = new Object(); pos = 0; while ((pos = str.indexOf(" ")) != -1 && and_search != "exact") { words[words_length] = str.substring(0,pos); if (words[words_length].length > 0) words_length++; if (str.length == 1) str=""; else str = str.substring(pos+1,str.length); } if (str.length > 0) words[words_length++] = str; for (q=0;q<words_length;q++) { temp_length = 0; str = words[q].toLowerCase(); len = (and_search=="and"&&q>0?menu_length:database_length); for (n=0; n<len; n++) { if (and_search=="and"&&q>0) { combo = (menu[n].title + " " + menu[n].description + " " + menu[n].keywords).toLowerCase(); } else { combo = (database[n].title + " " + database[n].description + " " + database[n].keywords).toLowerCase(); } if (combo.indexOf(str) != -1) // found temp[temp_length++] = (and_search=="and"&&q>0?menu[n]:database[n]); } if (and_search!="and" && q>0) { added = 0; for (i=0;i<temp_length;i++) { duplicate = false; for (j=0;j<menu_length&&!duplicate;j++) { if (menu[j] == temp) { duplicate = true; } } if (!duplicate) menu[menu_length+(added++)] = temp; } menu_length += added; } else { for(h=0;h<temp_length;h++) menu[h] = temp[h]; menu_length = temp_length; } } } function entry() { if ((document.entryform.keyword.value.length == 0) || (document.entryform.keyword.value == " ")) { alert("First you must enter a keyword to search for."); return false; } and_search = (document.entryform.and_or.selectedIndex == 0?"and":"or"); if (document.entryform.and_or.selectedIndex == 2) and_search = "exact"; location.href = location.pathname + "?" + escape(document.entryform.keyword.value) + (and_search != "or"?"&"+and_search:""); return false; } function redWord(str) { for(r=0; r<words_length; r++) { pos = -3; word = words[r].toLowerCase(); while ((pos = str.toLowerCase().indexOf(word,pos+3)) != -1) { val = pos+word.length; str = str.substring(0,pos) + "*" + str.substring(pos,val) + "|" + str.substring(val,str.length); } } pos = -16; while ((pos = str.toLowerCase().indexOf("*",pos+16)) != -1) str = str.substring(0,pos) + "<font color=red>" + str.substring(pos+1,str.length); pos = -7; while ((pos = str.toLowerCase().indexOf("|",pos+7)) != -1) str = str.substring(0,pos) + "</font>" + str.substring(pos+1,str.length); return str; }
var amorphous = document.database.list.value; temp_str = amorphous.substring(amorphous.length-2,amorphous.length); if (temp_str.indexOf("<url>") == -1) amorphous += "<url>"; else amorphous += " "; // amorphous database must have characters after last asterisk
database_length = 0; // Netscape 2 fix var database = new Database(); // read in from amorphous database
menu_length = 0; // Netscape 2 fix var menu = new Object();
string = ""; and_search = "or"; if (location.search.length > 1) { string = unescape(location.search.substring(1,location.search.length)); pos = 0; while ((pos = string.indexOf('"',pos)) != -1) { string = string.substring(0,pos) + '\\"' + string.substring(pos+1,string.length); pos += 2; } if (string.substring(string.length-4,string.length) == "&and") { string = string.substring(0,string.length-4); and_search = "and"; } else if (string.substring(string.length-6,string.length) == "&exact") { string = string.substring(0,string.length-6); and_search = "exact"; } else if (string.substring(string.length-3,string.length) == "&or") { string = string.substring(0,string.length-3); and_search = "or"; } search(string); }
if (location.search.length > 1) document.write();
// eliminate the keywords portion of the statement below to eliminate them from your display
for (n=0; n<menu_length; n++) document.write('<b>  '+menu[n].title +' </b><ul>'+redWord(menu[n].description)+'</li></ul><br>\n'); if ((menu_length == 0) && (location.search.length > 1)) document.write('Primary Activity "'+string+'" not found!\n'); // --> </script> <hr noshade> <p>
<!--Content to appear after the search results goes here-->
</p> </body> </html>
|