Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Search Problem

Status
Not open for further replies.

Ghealy

Programmer
Dec 5, 2000
2
IE
Hi,
I am fairly new to javascript and usually just copy and paste exsiting code if I need to use it at all.
I found a simple javascript code on the web that performs a search. The code as is works perfectly in both Netscape and IE. The problem is I tried to change the code so that it doesn't open a new window for the search results. I would have thought that this would have been fairly simple to do but unfortunately the code brings up errors in Netscape. The errors that are generated are that certain variables and functions have not been defined but I presume that there is a bigger problem at the root of these generated errors.

The following is the code that works correctly:
<HEAD>

<SCRIPT LANGUAGE=&quot;JavaScript&quot;>
<!-- Original: Dion (biab@iinet.net.au) -->
<!-- Web Site: -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! -->

<!-- Begin
var item = new Array();

/* Here is where all the magic happens.
Just enter as many additional pages that
that you want to search, then fill in the
additional listings for each page.
*/

// &quot;Page Name&quot;,&quot;path&quot;,&quot;Page Title&quot;,&quot;Many,Key,Words&quot;,&quot;Descriptive Comments&quot;

c=0; item[c]=new Array(&quot;ebiz_frame1.htm&quot;,&quot;&quot;,&quot;E-Business Consultancy&quot;,&quot;ebusiness&quot;,&quot;test&quot;);
page=&quot;<html><head><title>Search Results</title></head><body bgcolor='white'><center><table border=0 cellspacing=10 width=80%>&quot;;

function search(frm) {
win = window.open(&quot;&quot;,&quot;&quot;,&quot;scrollbars&quot;);
win.document.write(page);
txt = frm.srchval.value.split(&quot; &quot;);
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd = 0; order = new Array(0, 4, 2, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[order[j]].toLowerCase().indexOf(txt[k]) > -1 &amp;&amp; txt[k] != &quot;&quot;)
fnd += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };
if (w > -1) total += show(w, win, n);
fnd[w] = 0;
}
win.document.write(&quot;</table><br>Total found: &quot;+total+&quot;<br></body></html>&quot;);
win.document.close();
}
function show(which,wind,num) {
link = item[which][1] + item[which][0];
line = &quot;<tr><td><a href='&quot;+link+&quot;'>&quot;+item[which][2]+&quot;</a> Score: &quot;+num+&quot;<br>&quot;;
line += item[which][4] + &quot;<br>&quot;+link+&quot;</td></tr>&quot;;
wind.document.write(line);
return 1;
}
// End -->
</script>
</HEAD>

<BODY>

<center>

<form method=get action=&quot;javascript:void(0)&quot; onsubmit=&quot;search(this); return false;&quot;>
<tr><td><input type=text name=srchval value=&quot;&quot;><input type=submit value=&quot;Search&quot;></td></tr>
</form>

</center>

<p><center>
<font face=&quot;arial, helvetica&quot; size=&quot;-2&quot;>Free JavaScripts provided<br>
by <a href=&quot; JavaScript Source</a></font>
</center><p>
</body>
</html>

And this is the code that I changed and doesn't work...
<HEAD>

<SCRIPT LANGUAGE=&quot;JavaScript&quot;>
<!-- Original: Dion (biab@iinet.net.au) -->
<!-- Web Site: -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! -->

<!-- Begin
var item = new Array();

/* Here is where all the magic happens.
Just enter as many additional pages that
that you want to search, then fill in the
additional listings for each page.
*/

// &quot;Page Name&quot;,&quot;path&quot;,&quot;Page Title&quot;,&quot;Many,Key,Words&quot;,&quot;Descriptive Comments&quot;

c=0; item[c]=new Array(&quot;ebiz_frame1.htm&quot;,&quot;&quot;,&quot;E-Business Consultancy&quot;,&quot;e-business&quot;,&quot;test&quot;);
page=&quot;<html><head><title>Search Results</title></head><body bgcolor='white'><center><table border=0 cellspacing=10 width=80%>&quot;;

function search(frm) {
var fnd;
var w;
var i;
txt = frm.srchval.value.split(&quot; &quot;);
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd = 0; order = new Array(0, 4, 2, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[order[j]].toLowerCase().indexOf(txt[k]) > -1 &amp;&amp; txt[k] != &quot;&quot;)
fnd += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };
if (w > -1) total += show(w, n);
fnd[w] = 0;
}
document.write(&quot;</table><br>Total found: &quot;+total+&quot;<br></body></html>&quot;);
document.close();
}
function show(which,num) {
link = item[which][1] + item[which][0];
line = &quot;<tr><td><a href='&quot;+link+&quot;'>&quot;+item[which][2]+&quot;</a> Score: &quot;+num+&quot;<br>&quot;;
line += item[which][4] + &quot;<br>&quot;+link+&quot;</td></tr>&quot;;
document.write(line);
return 1;
}
// End -->
</script>
</HEAD>

<BODY>

<center>

<form method=get action=&quot;javascript:void(0)&quot; onsubmit=&quot;search(this); return false;&quot;>
<tr><td><input type=text name=srchval value=&quot;&quot;><input type=submit value=&quot;Search&quot;></td></tr>
</form>

</center>

<p><center>
<font face=&quot;arial, helvetica&quot; size=&quot;-2&quot;>Free JavaScripts provided<br>
by <a href=&quot; JavaScript Source</a></font>
</center><p>
</body>
</html>


I would be very grateful if anyone could help me with this matter.
Regards and Thanks,
Geraldine
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top