Tja, Som jag ser det finns det tre enkla lösningar.skriv till alla poster i db:n
nu har jag som ni kan tänka ett litet problem.
Det är nämnligen så att jag har en selectbox (<select> ) med poster från en databas som jag kan flytta upp och ner.
Nu vill jag spara platsvärdet (document.bytForm.bytSelect.selectedIndex) för varje post i databasen. Varje val i selectboxen (<option> ) har värdet av id-numret till posten.
Det jag inte fårstår är hur jag ska bära mig åt för att spara värdena till rätt post.
Jag har en liten teori om att jag kan skriva värdena i ett hidden-fält och id-numrena i ett anat och sedan skicka med dessa till sidan som lägger till i databasen.
Senan tänkte jag att man skulle kunna köra split och dela upp fälten i Arrays.
Slutligen skulle man då kunna bestämma i vilka poster man skulle lägga till talen och köra RecSet inuti nån form av loop.
Lite kod
I HEAD:
<script>
function upp()
{
i=document.bytForm.bytSelect.selectedIndex;
temp = document.bytForm.bytSelect[i].text;
temp2 = document.bytForm.bytSelect[i].value;
document.bytForm.bytSelect[i].text = document.bytForm.bytSelect[i-1].text;
document.bytForm.bytSelect[i].value = document.bytForm.bytSelect[i-1].value;
document.bytForm.bytSelect[i-1].text = temp;
document.bytForm.bytSelect[i-1].value = temp2;
document.bytForm.bytSelect.selectedIndex-=1;
}
function ner()
{
i=document.bytForm.bytSelect.selectedIndex;
temp = document.bytForm.bytSelect[i].text;
temp2 = document.bytForm.bytSelect[i].value;
document.bytForm.bytSelect[i].text = document.bytForm.bytSelect[i+1].text;
document.bytForm.bytSelect[i].value = document.bytForm.bytSelect[i+1].value;
document.bytForm.bytSelect[i+1].text = temp;
document.bytForm.bytSelect[i+1].value = temp2;
document.bytForm.bytSelect.selectedIndex+=1;
}
</script>
I BODY:
<form name=bytForm>
<select name=bytSelect>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("javascript.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT rubrik,id,ordning FROM "&Request.Querystring("tabell")&" ORDER BY ordning"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
Response.write "<option value='"&RecSet("id")&"'>"&RecSet("rubrik")
RecSet.MOVENEXT
LOOP
RecSet.close
Connect.close
%>
</select>
<input type=button value="^" onclick="if (document.bytForm.bytSelect.selectedIndex > 0) upp(); else alert('Den är redan först');">
<input type=button value="v" onclick="if (document.bytForm.bytSelect.selectedIndex < document.bytForm.bytSelect.length-1) ner(); else alert('Den är redan sist');"">
<p>
</form>Sv: skriv till alla poster i db:n
Alternativ 1:
Flytta posterna med asp kod. Att man postar sidan istället för att använda java script.
Alternativ 2:
Låta Value för varje option innehålla ID och Pos ("123;0", "223;1", "23;2"). Uppdatera dem med javascriptet sammtidigt som det flyttas. Sedan uppdatera med recordset eller SQL script.
Alternativ 3:
Töm databasen och spara informationen. Fungerar ju bara om det finns få fält.
Enklast är ju alternativ 1.