Problemer med rækkefølge
Jeg har et lidt kode, der volder mig problemer.Jeg har taget udgangspunkt i dette glimrende eksempel.
http://www.eksperten.dk/spm/353258
Mit problem er, at min tabel ikke opdateres med de korrekte værdier.
Det er nemlig ikke alle emnernes rækkefølge der bliver registreret i tabellen, ved opdatering.
Jeg håber at I kan hjælpe.
Her er koden:
<script language="JavaScript">
<!--
var sel;
var selo;
function checkSel ( frm ) {
sel = frm.model.selectedIndex;
selo = frm.model.options;
if ( 0 > sel ) {
alert( "Der skal vælges et kursus/modul først" );
return false;
};
return true;
}; //end checkSel ( Form object ) -> boolean
function checkDest ( dest ) {
if ( 0>dest || dest >= selo.length ) {
alert( "Det valgte kan ikke flyttes derhen" );
return false;
};
return true;
}; //end checkDest ( integer ) -> boolean
function ombyt ( fra, til ) {
var tmpTxt = selo[fra].text;
selo[fra].text = selo[til].text;
selo[til].text = tmpTxt;
var tmpVal = selo[fra].value;
selo[fra].value = selo[til].value;
selo[til].value = tmpVal;
return til;
}; //end ombyt ( integer, integer )
function flytOp( frm ) {
if ( checkSel( frm ) && checkDest( sel-1 ) )
frm.model.selectedIndex = ombyt( sel, sel-1 );
}; //end flytOp( form object )
function flytNed( frm ) {
if ( checkSel( frm ) && checkDest( sel+1 ) )
frm.model.selectedIndex = ombyt( sel, sel+1 );
}; //end flytNed( form object )
function gemSortering ( frm ) {
var skj = "";
selo = frm.model.options;
for (var i=0; selo.length>i; i++ )
skj += "," +selo[i].text;
frm.skjultFelt.value = skj.substring(1);
return true;
}; //end gemSortering ( form object )
// -->
</script>
<form name="sfrm" action="?SaveSortOrder=Yes&SubjectID=<%=request.QueryString("SubjectID")%>" onSubmit="return gemSortering(this);" method=post>
<table border=0 align=left cellpadding="0" cellspacing="0">
<tr>
<td><div class="mainContent"><strong>Aktive kurser/moduler for <%=ds1("A_SubjectName")%></strong></div>
<select name="model" size=10>
<!-- indsæt options med asp eller med håndkraft. -->
<%
Do while not ds1.eof
Response.Write "<option>" & ds1("DataField_01") & "</option>"
ds1.movenext
loop
%>
</select> </td>
<td width="15"> </td>
<td width="100">
<input type='button' style="cursor:hand; position: relative;top:-4px; width:60; height:21;border:0px; background-image:url(_Images/bt_flytop_0.gif); background-repeat:no-repeat;" onclick='flytOp(this.form)' value=" ">
<br><br>
<input type='button' style="cursor:hand; position: relative;top:-4px; width:60; height:21;border:0px; background-image:url(_Images/bt_flytned_0.gif); background-repeat:no-repeat;" onclick='flytNed(this.form)' value=" ">
<br><br>
<input type='submit' value="" style="cursor:hand; position: relative;top:-4px; width:60; height:21;border:0px; background-image:url(_Images/bt_Gem_0.gif); background-repeat:no-repeat;">
<input type='hidden' name='skjultFelt' value=''> </td>
</tr>
</table>
</form>
Her gemmes/opdateres ændringerne i tabellen:
arraystr = (request.form("skjultfelt"))
arrayid = Split(arraystr, ",")
For i = LBound(arrayid) To UBound(arrayid)
strSQL = "UPDATE tbl_CourseDataTmp SET "
strSQL = strSQL & "CourseSortOrder = " & i & " "
strSQL = strSQL & "WHERE DataField_01 = '" & arrayid(i) & "' and SubjectID="& request.QueryString("SubjectID") &""
set rs = Connect.execute (strSQL)
strSQL = ""
Next
Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
Med venlig hilsen
Henrik
