2012-11-24 54 views
3

我有一個搜索框在頁面的頂部。使用Ajax我想要一個div下拉頁面以顯示搜索結果。關鍵是我希望搜索結果覆蓋下面的頁面,而不是推下去。出於這個原因,我不能只在搜索框下面有一個div。我需要做一些更復雜的事情 - 但我不確定是什麼。javascript/php div下拉搜索結果

以下代碼在搜索框下面填充div。任何人都可以建議一種經濟的方式來讓div瀏覽頁面,而不是把所有東西都推下來。感謝您的任何建議!

的JavaScript

function showResults(str) { 

document.getElementById("results").innerHTML=xmlhttp.responseText; 
document.getElementById("results").style.border="1px solid #A5ACB2"; 

//some ajax 

xmlhttp.open("GET","search.php?str="+str,true); 
xmlhttp.send(); 
} 

HTML

<html> 
<body> 
<table><tr><td><img src="logo.gif"></td><td> 
<input type="text" id="string" onkeyup="showResults(this.value)"> 
<div id="results"></div><td></tr> 
<tr><td colspan=2 
Main body of page. All sorts of text and html go here that I do not want pushed down. 
</td></tr></table> 
</body> 
</html> 
+0

絕對可以。 – j08691

+0

絕對定位div嗎? – user1260310

回答

1
<html> 
<body> 
<table><tr><td><img src="logo.gif"></td><td style="position:relative"> 
<input type="text" id="string" onkeyup="showResults(this.value)"> 
<div id="results" style="position:absolute"></div><td></tr> 
<tr><td colspan=2 
Main body of page. All sorts of text and html go here that I do not want pushed down. 
</td></tr></table> 
</body> 
</html> 

位置相對和絕對會幫助你找到解決方案,並在同一時間,onload事件,你需要隱藏的div,一次搜索結果中,你必須再次展示它。

+0

這有幫助。結果覆蓋頁面。但是,它們是透明的,所以頁面顯示。另外,他們不會呆在桌子裏,而是一直走到屏幕的右側。我需要以某種方式格式化div嗎? – user1260310

+0

由於絕對的位置,你可以相對於它的TD位置,爲什麼你變得透明,這意味着你已經給了一些透明的地方。你能分享代碼嗎? –

+0

據我所知,我還沒有透明。只是添加在樣式

。我可以在課堂上使用CSS來設計div的樣式嗎?此外,當您在框外單擊時,需要一種方法使下拉消失,而目前它不會。 – user1260310

1

你必須絕對定位你的結果股利。

像:

<div id="results" style="position:absolute">