重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
關于javascript進行商品搜索的問題
公司主營業(yè)務:成都網(wǎng)站設計、網(wǎng)站建設、外貿(mào)網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出通河免費做網(wǎng)站回饋大家。
懸賞分:10 - 離問題結束還有 14 天 23 小時
我這里一個網(wǎng)站的高級搜索是用javascript腳本進行匹配的,但是我其中沒有看見有連接數(shù)據(jù)庫的代碼,它是怎么實現(xiàn)搜索的?請詳細回答一下!!感謝.
代碼如下:
script language=javascript
var whitespace = " \t\n\r";
function IsWhitespace (s)
{ var i;
if (IsEmpty(s)) return true;
for (i = 0; i s.length; i++)
{ var c = s.charAt(i);
if (whitespace.indexOf(c) == -1) return false;
}
return true;
}
function IsEmpty(s)
{ return ((s == null) || (s.length == 0))}
function IsDate(fDate)
{ var arrDaysInMonth=new Array(12);
arrDaysInMonth[1]=31;
arrDaysInMonth[2]=29;
arrDaysInMonth[3]=31;
arrDaysInMonth[4]=30;
arrDaysInMonth[5]=31;
arrDaysInMonth[6]=30;
arrDaysInMonth[7]=31;
arrDaysInMonth[8]=31;
arrDaysInMonth[9]=30;
arrDaysInMonth[10]=31;
arrDaysInMonth[11]=30;
arrDaysInMonth[12]=31;
if (IsEmpty(fDate))
return true
var NameList=fDate.split("-");
if (NameList.length!=3)
return false
if(!(IsYear(NameList[0])IsMonth(NameList[1]) IsDay(NameList[2])) )
return false
if ( NameList[1]arrDaysInMonth[NameList[1]] )
return false
if((NameList[1]==2)(NameList[2]DaysInFebruary(NameList[0]) ) )
return false
return true
}
function search()
{
var name = document.forms['frmdata'].elements['name'].value;
var auth= document.forms['frmdata'].elements['author'].value;
var manufact=
document.forms['frmdata'].elements['manufacturer'].value;
var smallprice=document.forms['frmdata'].elements['smallprice'].value;
var largeprice=document.forms['frmdata'].elements['largeprice'].value;
var
enabledat= document.forms['frmdata'].elements['enabledate'].value;
var
expiredate=document.forms['frmdata'].elements['expiredate'].value;
if (!IsWhitespace(enabledate))
{
if (!IsDate(enabledate))
{
alert("出廠日期 開始日期格式錯誤!");
return false;
}
}
if (!IsWhitespace(expiredate))
{
if (!IsDate(expiredate))
{
alert("出廠日期 結束日期格式錯誤!");
return false;
}
}
var allNotEmpty = (!IsWhitespace(name)) ||
(!IsWhitespace(author)) ||
(!IsWhitespace(manufacturer)) ||
(!IsWhitespace(smallprice)) ||
(!IsWhitespace(largeprice))||
(!IsWhitespace(enabledate)) ||
(!IsWhitespace(expiredate));
if (!allNotEmpty)
{ alert("必需輸入一個搜索條件");
return false;
}
...中間類似判斷
if((!IsWhitespace(smallprice))(!IsWhitespace(largeprice)))
{
if (parseFloat(smallprice)parseFloat(largeprice))
{
alert("價格范圍錯誤");
return false;
}
}
}
/script
代碼:
1 form.htm
起始頁面,頁面里有查詢框。
script language="javascript"
function gosearch(){
if (str.value==""){ alert ("請輸入查找的內(nèi)容!"); return false; }
window.location="query.htm?"+str.value;
}
function getkey(){
if(window.event.keyCode == 13) gosearch();
}
/script
input name="str" type="text" id="str" /
input type="button" name="Button" value="查找" onclick="gosearch()" /
script
str.focus();
document.onkeydown=getkey;
/script
2 query.htm
搜索頁面,接收上個頁面 傳來的參數(shù)。
script language="javascript"
var titlearray = new Array(); //關鍵字數(shù)組
var urlarray = new Array(); //超級鏈接數(shù)組
var fitarray = new Array(); //符合要求的數(shù)組
/script
script type="text/javascript" src="title.js"/script//加載關鍵字
script type="text/javascript" src="url.js"/script//加載超級鏈接
script language="javascript"
var args = window.location.href.split("?");//用問號為間隔,各個參數(shù)寫入數(shù)組args
var target = args[1]; //要找的字符串
for (var i=0; ititlearray.length; i++){
if (titlearray[i].indexOf(target)!=-1){
fitarray.push(i);//將要找的結果寫入數(shù)組。也可以不用數(shù)組,直接顯示。
}
}
var resultstr = "";
if (fitarray.length ==0 ){
resultstr += "抱歉,沒有找到資料。";
}
for (j in fitarray){
resultstr += "a href=\""+ urlarray [fitarray[j]] +"\" target=\"_blank\""+ titlearray[fitarray[j]]+"
";//結果內(nèi)容賦值給了resultstr
}
/script
div id="result"/div
script language="javascript"
document.getElementById("result").innerHTML += resultstr;//顯示結果內(nèi)容
/script
3 title.js 關鍵字文件
titlearray [0] = "keyword1";
titlearray [1] = "keyword2";
titlearray [2] = "keyword3";
url.js 超級鏈接文件
urlarray [0] = "1.htm";
urlarray [1] = "2.htm";
urlarray [2] = "3.htm";
這兩個文件需要下標對應,不能錯位。
這里有一個簡單的站內(nèi)搜索功能
SCRIPT?language=javascript
!--
function?go(formname)
{
var?url?=?;
formname.method?=?"get";
if?(formname.myselectvalue.value?==?"1")?{
document.search_form1.word.value?=?document.search_form1.word.value?"?site:";
}
formname.action?=?url;
return?true;
}
//--
/SCRIPT
form?name="search_form1"?target="_blank"?onsubmit="return?go(this)"
input?name=word?size="30"?value="請輸入關鍵字"?onMouseOver="this.focus()"?onBlur="if?(value?==''){value='請輸入關鍵字'}"?onFocus="this.select()"?onClick="if(this.value=='請輸入關鍵字')this.value=''"
input?type="submit"?value="搜索"br
INPUT?name=myselectvalue?type=hidden?value=0
INPUT?name=tn?type=hidden?value="sayyes"
INPUT?name=cl?type=hidden?value="3"
INPUT?CHECKED?name=myselect?onclick=javascript:this.form.myselectvalue.value=0;?type=radio?value=0
FONT?color=#0000cc?style="FONT-SIZE:?12px"互聯(lián)網(wǎng)?
INPUT?name=myselect?onclick=javascript:this.form.myselectvalue.value=1;?type=radio?value=1
FONT?color=#ff0000?style="FONT-SIZE:?12px"站內(nèi)?
/form
一、IE瀏覽器開啟JavaScript方法:
1、在IE界面菜單欄中“工具”中選擇“Internet選項”。
2、“安全”選項卡中選擇“Internet”(藍色的小地球)。
3、進入“自定義級別”找到“腳本”下的“Java小程序腳本”中進行啟用。
二、360瀏覽器開啟JavaScript方法:
1、在360界面菜單欄的“工具”中選擇“360安全瀏覽器選項”。
2、找到“網(wǎng)頁設置”選項,在網(wǎng)頁設置選項中取消“不支持Java小程序”。設置完成后,重新打開瀏覽器設置即可生效。
搜索功能有多種實現(xiàn)方式 ,前后端都可以實現(xiàn)
第一種:
頁面內(nèi)搜索(類似CTRL+F),這個可以純前端完成,直接用js匹配搜索結果,進行隱藏顯示或改變顏色等
第二種:
純后端方案,將搜索的字符串拼接到一個新的url參數(shù)后,然后跳轉到生成的url上,直接顯示新頁面搜索結果,如最早的baidu搜索就是一個跳轉 ,目前baidu已經(jīng)不使用這種方式
第三種:
Ajax搜索,需要前后端配合,將關鍵字發(fā)送一個請求到后端,后端需要將結果的數(shù)據(jù)傳給前端,前端根據(jù)返回的數(shù)據(jù),重新對頁面部分進行渲染
CTRL+F不支持正則,這個是瀏覽器自帶的功能,由于正則對于普通用戶來說,是很專業(yè)的,瀏覽器一般不會去支持很少有人會用的功能,當然是否支持取決于瀏覽器廠商的想法