2014-01-23 3 views
0

항목을 드래그 앤 드롭하여 다시 정렬 할 수있는 정렬 가능한 목록이 있습니다. 항목을 재정렬하면 입력 태그 안의 숫자가 목록 내의 새 위치에 따라 조정됩니다. 이 시점에서 내가하고 싶은 것은 데이터베이스 내의 필드에 새로운 입력 값을 게시하는 것입니다. 다음은 JavaScript를 사용하여 Classic ASP의 databse에 게시 할 수있는 방법

는 클래식 ASP 코드

<form name="sort_award" action="file_2.asp?Action=sort" method="post"> 
<% 
end if 
response.write "<ul id='sortable'>" 
dim i 
i=1 

While not rsAwards.EOF 

response.write "<li onclick='sort("&rsAwards("Award_ID")&")'> &nbsp 
<input type='text' name='AwardNumber' size='1' value="&i&"> &nbsp 
<label name='AwardName'>" & rsAwards("Award_Name") & "</label>" 
%> 
<a href='edit_awards.asp?Action=edit&Award_ID=<%=rsAwards("Award_ID")%>' name='AwardID'>Edit</a>&nbsp; 
<a class="lb" href='file_1.asp?Action=delete&Award_ID=<%=rsAwards("Award_ID")%>'>Delete</a></li> 
<% 
rsAwards.MoveNext 
i=i+1 
Wend 

%></ul> 
<input type="submit" value="Sort"> 
</form> 

입니다 그리고 여기에 자바 스크립트

$(function() { 
    $("#sortable").sortable({ placeholder: "ui-state-highlight" }); 
}); 

function sort(AwardID) { 
    var count = document.getElementById('sortable').getElementsByTagName('li').length; 
    var AwardNum = document.getElementById('sortable').getElementsByTagName('input'); 

    for(var i = 0; i < count; i++) 
    { 
     AwardNum[i].setAttribute('value', i+1);  
    } 
} 
+0

$ .ajax 또는 $ .post를 사용하여 jquery가 서버의 .asp 스크립트에 데이터를 보내도록합니다. –

+0

JavaScript가 데이터베이스에 액세스 할 수 없습니다. (적어도, 저는 * 할 수 없으면 좋겠다고 생각합니다. 그렇지 않으면 더 큰 문제가 있습니다.) AJAX를 사용하여 데이터를 받아들이는 서버 측 리소스 (이 설정에서는 다른 "페이지")로 데이터를 보내야합니다 (쿼리 문자열 값, 포스트 값 등). 데이터베이스에 대한 서버 측 로직. 클라이언트 측 코드와 서버 측 코드 사이에는 서비스 계층이 엄격하게 분리되어 있습니다. 필요한 것은 해당 서비스 계층에 대한 엔드 포인트를 작성하는 것입니다. – David

+0

file_2는 양식 데이터를 처리하여 데이터베이스에 게시합니다. 나는 Jquery에 익숙하지 않고 아약스에 익숙하지도 않다. 나는 $ .post를 어떻게 사용합니까? – n3tak0

답변

1

사용 jQuery입니다.

당신은 쉽게 GET 요청을하고있는 경우 대신 .get()를 사용할 수 .post()

를 사용하여 ASP 페이지에 아약스를 통해 데이터를 게시 할 수 있습니다, 그것은 훨씬 덜 복잡하다.

(참고 : jQuery를이뿐만 아니라 다른 아약스 요청 함수의 무리를 포함하는 등 .ajax(), .load() 같은 그러나 나는 더 많은 유연성 및 사용 기능을 기억하는 데 필요한 수 있기 때문에 이것에 대한 기능을 내 이동로 .get()을 찾을 수)를 사용하려면

, 간단하게이 작업을 수행 : 그것 뿐이다

<script> 
$.get("myasppage.asp?id=12345", function(data){ 

    //after the request is complete, you can place any code here that you want 
    //therefore, your code won't continue processing until the request is done. 

    //if the .asp page returns content like "HELLO!", then that would be in your 
    // data variable, as defined up top. So you can just do this. 


    $(body).append(data); //<- appends the data from myasppage.asp to your body content 

    alert(data); // <- will popup an alert box with the content returned from your asp page 



}); 
</script> 

합니다. :)

+0

이것은 단지 내 양식의 값을 업데이트합니다. 이미 완료했습니다. 내가하려는 것은 데이터를 내 데이터베이스에 게시하는 것입니다. 대신 .post()를 어떻게 사용할 수 있습니까? – n3tak0

+0

@ n3tak0 작동하게하려면 "myasppage.asp"라는 페이지가 있어야 Request.QueryString ("id")'를 확인할 수 있고 비어 있지 않은 경우 데이터베이스에 추가 할 수 있습니다. 그것이 AJAX의 본질입니다. AJAX는 놓친 것처럼 보입니다. –

+0

대신 게시판을 요구하는 대신, asp 페이지의'Request.Form ("field1")'을'Request ("field1")'로 변경하십시오. 이렇게하면 요청시 양식 또는 쿼리 문자열을 허용 할 수 있습니다. 그렇지 않으면 jquery에서 양식을 게시하는 예를 찾을 수 있습니다 (내 대답에 제공된 것과 동일한 URL). http://api.jquery.com/jquery.post/ –

관련 문제