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
%>