台灣最大程式設計社群網站
線上人數
2125
 
會員總數:245250
討論主題:189110
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> AJAX判斷搜尋值是否改變如改變即時刷新梅改辨惑空字串不刷新的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
AJAX判斷搜尋值是否改變如改變即時刷新梅改辨惑空字串不刷新的問題
價值 : 10 QP  點閱數:2782 回應數:3

樓主

凜楓LinFeng
初學者
2 2
224 1
發送站內信

主要判斷的程式

可是不知道為什麼無法完全得到我要的結果
刷新搜尋時有時候會卡住梅東西出來
如輸入9變97再變回9有可能跑不出東西
或者是9 97 71 7 9 空白 等等 也有可能出現我說的問題
上面的問題有大大知道該怎做嗎?

搜尋相關Tags的文章: [ AJAX ] , [ 搜尋 ] , [ JS ] , [ JavaScript ] ,
本篇文章發表於2007-08-05 00:36
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

凜楓LinFeng
檢舉此回應
附上測試網址
http://aca.sju.edu.tw/search_bata2_test/index.htm
本篇文章回覆於2007-08-05 00:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

活跳跳
捐贈 VP 給 活跳跳 檢舉此回應
var stringData = strSV1.replace(/[ ]{2,}/g," ").split(" ");
//以空白字元為分割點,將輸入資料分割成多個array內容
再以for迴圈看stringData[i]是否都match.
這是我做多重字串搜尋的方法
你也可以試試
本篇文章回覆於2007-09-15 21:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

活跳跳
捐贈 VP 給 活跳跳 檢舉此回應
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>搜尋分割字串</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript"><!--
rp=0; //是否修改過輸入內容
findText = findTextOld = "";
databaseFile = "sample1.txt"; // 資料庫檔案名
databaseText = "";
// 解析以定位隔開之文字檔並顯示資料
function parseTabText()
{
var LF = String.fromCharCode(10); // 換行字元 (LF)
var TAB = String.fromCharCode(9); // 定位字元
var resultText="";
resultText += "輸入字串:" + findText0 + "<br\>";
resultText += "字串總長度:" + findText0.length + "<br\>";
var stringData = findText.replace(/[ ]{2,}/g," ").split(" ");
for (var i=0; i<stringData.length; i++)
{
resultText += "第" + i + "筆字串:" + stringData[i] + "<br\>";
}
//resultText += "i=" + i + "</br>";
resultText += "<table border='1' cellspacing='0'><tr>" +
"<td align='middle'>筆</td>" +
"<td align='middle'>微秒</td>" +
"<td align='middle'>目錄</td>" +
"<td align='middle'>章</td>" +
"<td align='middle'>篇節</td>" +
"<td align='middle'>內容</td></tr>";
var lineData = databaseText.split(LF);
var k1=0; //共幾筆
var k; //吻合深度(必須與字串分割數相同才表示OK)
var str; //切割字串是否吻合
var usetime;
for (var j=0; j<lineData.length; j++)
{
var itemData = lineData[j].split(TAB);
k=0;
while(k<i)
{
if(itemData[3].match(stringData[k]))
k++;
else
k=i+1;
if(k==i)
{
if (itemData[0]==1)
{list="瑪竇福音";}
else if (itemData[0]==2)
{list="馬爾谷福音";}
else if (itemData[0]==3)
{list="路加福音";}
else if (itemData[0]==4)
{list="若望福音";}
else if (itemData[0]==5)
{list="宗徒大事錄";}
d = new Date(); //即時時間
usetime=d.getTime()-firsttime; //個別使用時間
firsttime = d.getTime();//修正個別起始時間
k1++;
resultText += "<tr>" + "<td align='middle'>" + k1 + "</td>" +
"<td align='middle'>" + usetime + "</td>" +
"<td align='middle'>" + list + "</td>" +
"<td align='middle'>" + itemData[1] + "</td>" +
"<td align='middle'>" + itemData[2] + "</td>" +
"<td align='left'>" + itemData[3] + "</td></tr>";
}
}
}
d = new Date(); //結束時間
var allusetime;
allusetime=d.getTime()-f1; //總花用時間
resultText += "<tr>" + "<td align='middle'>" + k1 + "</td>" +
"<td align='middle'>" + allusetime + "</td>" +
"<td align='middle'>" + "over" + "</td>" +
"<td align='middle'>" + "over" + "</td>" +
"<td align='middle'>" + "over" + "</td>" +
"<td align='left'>" + "rp(input_check次數)=" + rp + "</td>" +
"</tr></table>";
return resultText;
}
// 檢查輸入
function inputCheck()
{
rp++;
if(rp>2)
{
d = new Date(); //起始時間
firsttime = d.getTime(); //變動起始時間(算個別花費時間)
}
f1=firsttime; //最起始的時間(算總時間)
findText0 = $("searchText").value; // 要搜尋的文字
findText =findText0.replace(/(^\s*)|(\s*$)/g, ""); // 為trim功能
if (findText.length>0)
{
if(findText != findTextOld)
{
$("result").innerHTML = parseTabText();
findTextOld = findText;
}
}
}
// 初始設定
window.onload = function ()
{
d = new Date(); //起始時間
firsttime = d.getTime(); //變動起始時間(算個別花費時間)
new Ajax.Request(databaseFile, { method: 'get',
onComplete: function (httpObj) {databaseText = httpObj.responseText}}); //設定只載入一次
setInterval(" inputCheck()",2500); // 以1秒為單位檢查
}

// --></script>
</head>
<BODY background="background.gif" BGPROPERTIES ="fixed">
<h2>搜尋分割字串</h2>
<form onSubmit="return false">
<input type="text" value="比拉多 耶穌" id="searchText">
</form>
<div id="result"></div>
</body>
</html>

本篇文章回覆於2007-09-15 21:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.