Håller på med ett litet avancerat projekt som är i sin linda...
Men!
Kan man göra så att man sparar en utsökning från en databas i en array.
Om det är "flera träffar" blir resultatet en länk. Där det står "fler resultat" typ.
Klickar man på länken "öppnas" en ruta med ´samtliga sökresultat som länkar. Man kan sedan välja ett resultat genom att klicka på länken. Rutan stängs då.
<script>
function showResults(e,a)
{
var left, top;
if (window.event){
left = window.event.clientX;
top = window.event.clientY;
} else if (e){
left = e.pageX;
top = e.pageY;
}
if (left && top){
window["a"] = a;
elm.style.left = left;
elm.style.top = top;
elm.style.visibility = "visible";
}
return false;
}
window.onload = function()
{
window["elm"] = document.getElementById("result");
}
document.onclick = function(e)
{
var tmp = window.event ? window.event.srcElement : e ? e.target : 0,
fnd = false;
if (tmp){
while (tmp){
if (tmp == elm || (typeof a != "undefined" && tmp == a)) {
fnd = true;
break;
}
tmp = tmp.parentNode;
}
}
if (!fnd) elm.style.visibility = "hidden";
}
</script>
<table border="1">
<tr>
<td>asfdasölfasöfkaökfaslkf</td>
<td>asdfasödlfjaslöjasljfasljfalsjalsjfalsjfaöljfajsfasöjlfjas</td>
<td>safasfasfasfaa</td>
<td><a href="" onclick="return showResults(event,this)">5,55 kr</a></td>
</tr>
</table>
<style>
#result{
background: white;
border : 1px solid;
padding : 5px;
position : absolute;
visibility: hidden;
}
ul,li{
list-style: none;
margin : 0;
padding : 0;
}
</style>
<div id="result">
<ul>
<li><a href="">resultat 1</a></li>
<li><a href="">resultat 2</a></li>
</ul>
</div>
Om antalet resultat från databassökningen > 1, loopar du ut de länkar du vill ha i div#result och skriver ut "5,55 kr" som länk enligt bifogat exempel. Annars skriver du inte ut "5,55 kr" som länk. :)
Men, om jag testar att skicka värdet på "foo" utan att ha ändrat i listrutan så skickas inget... Om jag däremot ändrat i listrutan så skickas värdet... Hur sätter jag defaultvärdet på "foo"?
<%
'Deklarera variabler
'*******************
Dim objConn, objRS, objDict, sSQL, sSuppliers, sSupplierArticles, sArticles, sKey, iSupplierId, sArticle, sSupplierarticle
' Öppna databasen
' ***************
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = Application("sConn")
objConn.Open
sSQL = "SELECT tblArticle.articleName, tblArticle.articleUnit, tblPrice.articlePrice, tblSupplier.SupplierName, " &_
"tblCart.articleAmount, tblSupplier.SupplierId, tblCategory.CategoryName, tblPrice.articleNumber " &_
"FROM tblArticle " &_
"INNER JOIN tblPrice ON tblArticle.articlenumber = tblPrice.articleNumber " &_
"INNER JOIN tblSupplier ON tblPrice.articleSupplierId = tblSupplier.SupplierId " &_
"INNER JOIN tblCart ON tblArticle.articleName = tblCart.articleName " &_
"INNER JOIN tblCategory ON tblPrice.articleSupplierId = tblCategory.supplierId AND tblPrice.articleCategoryNumber = tblCategory.categoryNumber " &_
"ORDER BY tblPrice.articlePrice"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open sSQL, objConn, 3, 1
set sSuppliers=CreateObject("Scripting.Dictionary")
set sArticles=CreateObject("Scripting.Dictionary")
set sSupplierArticles=CreateObject("Scripting.Dictionary")
Do while not objRS.EOF
sSuppliers(cstr(objRS("SupplierId"))) = cstr(objRS("SupplierName"))
sArticles(cstr(objRS("articleName"))) = cstr(objRS("articleUnit"))
sKey=cstr(objRS("SupplierId")) & vbTab & cstr(objRS("articleName"))
if not sSupplierarticles.Exists(sKey) then
set sSupplierArticles(sKey)=CreateObject("Scripting.Dictionary")
end if
sSupplierArticles(sKey)(cstr(objRS("articleNumber")))=cdbl(objRS("articlePrice"))
objRs.MoveNext
Loop
response.write "<table border='1'><tr><td>Artikelbenämning</td><td>Enhet</td>"
for each iSupplierId in sSuppliers
response.write "<td>" & sSuppliers(iSupplierId) & "</td>"
next
response.write "</tr>"
for each sArticle in sArticles
response.write "<tr><td>" & sArticle & "</td><td>" & sArticles(sArticle) & "</td>"
for each iSupplierId in sSuppliers
response.write "<td>"
skey=iSupplierId & vbTab & sArticle
if not sSupplierArticles.Exists(sKey) then
response.write " "
else
for each sSupplierarticle in sSupplierarticles(sKey)
response.write [b]sSupplierarticle & ":" & sSupplierarticles(sKey)(sSupplierarticle) & "<br>"[/b]
next
end if
response.write "</td>"
next
response.write "</tr>"
next
response.write "</table>"
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
set sSuppliers = Nothing
set sArticles = Nothing
set sSupplierArticles = Nothing
%>