Dreamweaver에서 레코드 삭제 페이지를 구성하여 사용자가 데이터베이스에 있는 레코드를 삭제할 수 있도록 하는 방법에 대해 학습합니다.
Dreamweaver의 현재 버전 이후로 사용자 인터페이스가 간소화되었습니다. 따라서 이 문서에 설명된 옵션 중에 Dreamweaver의 현재 버전에 없는 옵션이 있을 수 있습니다. 자세한 내용은 이 문서를 참조하십시오.
레코드 삭제 페이지 정보
애플리케이션에는 사용자가 데이터베이스의 레코드를 삭제할 수 있는 페이지 세트가 포함될 수 있습니다. 페이지는 일반적으로 검색 페이지, 결과 페이지, 삭제 페이지로 구성됩니다. 삭제 페이지는 보통 결과 페이지와 함께 작동하는 세부 정보 페이지입니다. 검색 및 결과 페이지에서는 사용자가 레코드를 검색할 수 있고 삭제 페이지에서는 사용자가 레코드를 확인하고 삭제할 수 있습니다.
검색 및 결과 페이지를 만든 후 결과 페이지에 삭제 페이지를 열 수 있는 링크를 추가한 다음 레코드를 표시하고 제출 버튼을 포함하는 삭제 페이지를 작성합니다.
삭제할 레코드 검색
사용자가 레코드를 삭제하려면 먼저 데이터베이스에서 해당 레코드를 찾아야 합니다. 따라서 삭제 페이지와 함께 작동할 검색 및 결과 페이지가 필요합니다. 사용자는 검색 페이지에서 검색 기준을 입력하고 결과 페이지에서 레코드를 선택합니다. 사용자가 레코드를 클릭하면 삭제 페이지가 열리고 HTML 양식에 레코드가 표시됩니다.
삭제 페이지에 대한 링크 만들기
검색 및 결과 페이지를 만든 후 결과 페이지에서 삭제 페이지를 열 수 있는 링크를 만들어야 합니다. 그런 다음 사용자가 삭제하려는 레코드의 ID를 전달하도록 링크를 수정합니다. 삭제 페이지는 이 ID를 사용하여 레코드를 찾고 표시합니다.
링크를 수동으로 만들려면
표에 열이 추가됩니다.
삭제를 나타내는 단어나 기호가 들어 있는 이미지를 삽입할 수도 있습니다.
링크 상자 밖을 클릭하면 테이블에서 삭제 문자열이 링크로 나타납니다. 라이브 뷰를 사용하면 모든 테이블 행에서 같은 텍스트에 링크가 적용되는 것을 확인할 수 있습니다.
?recordID=#recordsetName.fieldName#
물음표는 뒤에 오는 것이 하나 이상의 URL 매개 변수임을 서버에 알려줍니다. recordID라는 단어는 URL 매개 변수의 이름입니다(원하는 이름을 만들 수 있습니다). 나중에 삭제 페이지에서 사용할 것이므로 URL 매개 변수의 이름을 기록해 두십시오.
등호 다음의 표현식이 매개 변수의 값입니다. 이 경우 값은 레코드 집합에서 레코드 ID를 반환하는 ColdFusion 표현식으로 생성됩니다. 동적 테이블의 각 행마다 서로 다른 ID가 생성됩니다. ColdFusion 표현식에서 recordsetName을 레코드 집합의 이름으로 바꾸고 fieldName을 각 레코드를 고유하게 식별하는 레코드 집합의 필드 이름으로 바꾸십시오. 대부분의 경우 필드는 레코드 ID 번호로 구성됩니다. 다음 예제에서는 필드에 고유 위치 코드가 들어 있습니다.
confirmDelete.cfm?recordID=#rsLocations.CODE#
페이지가 실행되면 레코드 집합의 CODE 필드 값이 동적 테이블의 해당 행에 삽입됩니다. 예를 들어 호주 캔버라 렌탈 위치의 코드가 CBR인 경우 동적 테이블의 캔버라 행에서 다음 URL이 사용됩니다:
confirmDelete.cfm?recordID=CBR
?recordID=<?php echo $row_recordsetName['fieldName']; ?>
물음표는 그 뒤에 하나 이상의 URL 매개 변수가 따라온다는 것을 서버에 알려줍니다. recordID라는 단어는 URL 매개 변수의 이름입니다 (원하는 이름을 만들 수 있습니다). 나중에 삭제 페이지에서 사용할 것이므로 URL 매개 변수의 이름을 기록해 두십시오.
등호 다음의 표현식이 매개 변수의 값입니다. 이 경우 값은 레코드 집합에서 레코드 ID를 반환하는 PHP 표현식으로 생성됩니다. 동적 테이블의 각 행마다 서로 다른 ID가 생성됩니다. PHP 표현식에서 recordsetName을 레코드 집합의 이름으로 바꾸고 fieldName을 각 레코드를 고유하게 식별하는 레코드 집합의 필드 이름으로 바꾸십시오. 대부분의 경우 필드는 레코드 ID 번호로 구성됩니다. 다음 예에서 필드는 고유한 위치 코드로 구성됩니다:
confirmDelete.php?recordID=<?php echo $row_rsLocations['CODE']; ?>
페이지가 실행되면 레코드 집합의 CODE 필드 값이 동적 테이블의 해당 행에 삽입됩니다. 예를 들어 호주 캔버라 렌탈 위치의 코드가 CBR인 경우 동적 테이블의 캔버라 행에서 다음 URL이 사용됩니다:
confirmDelete.php?recordID=CBR
?recordID=<%=(recordsetName.Fields.Item("fieldName").Value)%>
물음표는 서버에 뒤따르는 것이 하나 이상의 URL 매개 변수라는 것을 알려줍니다.recordID라는 단어는 URL 매개 변수의 이름입니다 (원하는 이름으로 만들 수 있습니다).나중에 삭제 페이지에서 사용하므로 URL 매개 변수의 이름을 기억해 두십시오.
등호 뒤의 식은 매개 변수의 값입니다.이 경우 값은 레코드 집합의 레코드 ID를 반환하는 ASP 식으로 생성됩니다.동적 테이블의 각 행에 대해 다른 ID가 생성됩니다.ASP 식에서 recordsetName을 레코드 집합의 이름으로 바꾸고, fieldName을 각 레코드를 고유하게 식별하는 레코드 집합의 필드 이름으로 바꾸십시오.대부분의 경우 필드는 레코드 ID 번호로 구성됩니다.다음 예에서 필드는 고유한 위치 코드로 구성됩니다:
confirmDelete.asp?recordID=<%=(rsLocations.Fields.Item("CODE").Value)%>
페이지가 실행되면 레코드 집합의 CODE 필드 값이 동적 테이블의 해당 행에 삽입됩니다.예를 들어 호주 캔버라 임대 위치의 코드가 CBR인 경우 동적 테이블의 캔버라 행에서 다음 URL이 사용됩니다:
confirmDelete.asp?recordID=CBR
링크를 시각적으로 만들기(ASP만 해당)
표에 열이 추가됩니다.
삭제에 대한 단어나 기호가 있는 이미지를 삽입할 수도 있습니다.
원하는 이름을 자유롭게 만들 수 있지만, 나중에 삭제 페이지에서 사용하게 되므로 이름을 기억해 두십시오.
선택된 텍스트 앞뒤에 특수 링크가 지정됩니다. 사용자가 링크를 클릭하면 세부 정보 페이지로 이동 서버 동작이 레코드 ID가 포함된 URL 매개 변수를 지정된 삭제 페이지에 전달합니다. 예를 들어, URL 매개 변수가 recordID이고 삭제 페이지가 confirmdelete.asp인 경우, 사용자가 링크를 클릭했을 때 URL은 다음과 같은 형태입니다:
http://www.mysite.com/confirmdelete.asp?recordID=43
URL의 첫 번째 부분인 http://www.mysite.com/confirmdelete.asp은 삭제 페이지를 엽니다. 두 번째 부분인 ?recordID=43은 URL 매개 변수입니다. 이 부분이 찾아서 표시할 레코드를 삭제 페이지에 알려 줍니다. recordID는 URL 매개 변수의 이름이고 43은 값입니다. 이 예에서 URL 매개 변수에는 레코드의 ID 번호인 43이 포함되어 있습니다.
삭제 페이지 구성
레코드를 나열하는 페이지를 완성한 후 삭제 페이지로 전환합니다. 삭제 페이지는 레코드를 보여주고 정말 삭제할지 사용자에게 확인을 요청합니다. 사용자가 양식 버튼을 클릭하여 작업을 확인하면 웹 애플리케이션이 데이터베이스에서 레코드를 삭제합니다.
이 페이지 작성은 HTML 양식 만들기, 양식에 표시할 레코드 검색, 양식에서 레코드 표시, 데이터베이스에서 레코드를 삭제하는 로직 추가로 구성됩니다. 레코드 검색 및 표시는 단일 레코드(사용자가 삭제하려는 레코드)를 보관할 레코드세트 정의와 레코드세트 열을 양식에 바인딩하는 작업으로 구성됩니다.
삭제 페이지에는 한 번에 하나의 레코드 편집 서버 동작만 포함할 수 있습니다. 예를 들어, 삭제 페이지에 레코드 삽입 또는 레코드 업데이트 서버 동작을 추가할 수 없습니다.
레코드를 표시할 HTML 양식 만들기
이전 섹션에서 삭제 링크를 만들 때 삭제 페이지를 지정했습니다. 파일을 처음 저장할 때 이 이름을 사용하십시오 (예: deleteConfirm.cfm).
숨겨진 양식 필드는 URL 매개 변수로 전달되는 레코드 ID를 저장하는 데 필요합니다. 숨김 필드를 추가하려면 양식에 삽입 지점을 두고 [삽입] > [양식] > [숨김 필드]를 선택합니다.
사용자는 버튼을 클릭하여 표시된 레코드 삭제를 확인합니다. 버튼을 추가하려면 양식에서 삽입 지점을 지정하고 [삽입] > [양식] > [버튼]을 선택합니다.
사용자가 삭제하려는 레코드를 검색합니다.
단순 [레코드세트] 또는 [데이터 세트] 대화 상자가 나타납니다. 고급 레코드셋 대화상자가 나타나면 [간단]을 클릭합니다.
레코드 필드 중 일부만 표시하려면 [선택됨]을 클릭하고 목록에서 Ctrl 키를 누른 채 클릭(Windows) 또는 Command 키를 누른 채 클릭(Mac)하여 원하는 필드를 선택합니다.
표시하지 않더라도 레코드 ID 필드는 포함해야 합니다.
[필터] 영역의 첫 번째 팝업 메뉴에서 삭제 링크가 포함된 페이지로부터 전달 받은 URL 매개 변수의 값과 일치하는 값이 포함된 레코드세트의 열을 선택합니다. 예를 들어 URL 매개 변수에 레코드 ID 번호가 포함된 경우 레코드 ID 번호를 포함하는 열을 선택합니다. 앞 단원에서 설명한 예제에서 CODE라는 레코드세트 열에는 삭제 링크가 포함된 페이지로부터 전달 받은 URL 매개 변수의 값과 일치하는 값이 포함되어 있습니다.
첫 번째 메뉴 옆의 팝업 메뉴에서 등호가 이미 선택되어 있지 않으면 등호를 선택합니다.
세 번째 팝업 메뉴에서 [URL 매개 변수]를 선택합니다. 삭제 링크가 포함된 페이지에서는 URL 매개 변수를 사용하여 정보를 삭제 페이지로 전달합니다.
네 번째 상자에 삭제 링크가 포함된 페이지가 전달하는 URL 매개 변수의 이름을 입력합니다.
레코드세트가 [바인딩] 패널에 나타납니다.
사용자가 삭제하려는 레코드를 표시합니다.
이 읽기 전용 다이내믹 콘텐츠를 양식 경계 내에 삽입하십시오.페이지에 다이내믹 콘텐츠를 삽입하는 방법에 대한 자세한 내용은 텍스트를 다이내믹으로 만들기를 참조하십시오.
다음으로, 레코드 ID 열을 숨김 양식 필드에 연결해야 합니다.
그러면 숨김 양식 필드가 선택됩니다.
다음 예제에서 레코드 ID 열인 CODE는 고유한 상점 코드를 포함합니다.
레코드 삭제를 위한 논리 추가
삭제 페이지에 선택된 레코드를 표시한 후, 사용자가 [삭제 확인] 버튼을 클릭할 때 데이터베이스에서 레코드를 삭제하는 로직을 페이지에 추가해야 합니다.[레코드 삭제] 서버 동작을 사용하면 이 로직을 빠르고 쉽게 추가할 수 있습니다.
레코드를 삭제하는 서버 동작 추가하기(ColdFusion, PHP)
기본 키 값은 나중에 대화 상자에서 지정합니다.
레코드 삭제 서버 동작은 이 열에서 일치하는 항목을 검색합니다.이 열에는 페이지의 숨김 양식 필드에 바인딩한 레코드 집합 열과 동일한 레코드 ID 데이터가 포함되어야 합니다.
레코드 ID가 숫자인 경우 [숫자] 옵션을 선택합니다.
이 변수는 숨김 양식 필드에 의해 만들어집니다. 이 변수는 숨김 필드의 이름 속성과 동일한 이름을 가지며 양식의 메서드 속성에 따라 양식 또는 URL 매개 변수입니다.
사용자에게 간단한 성공 메시지가 포함된 페이지를 지정하거나, 나머지 레코드를 나열하는 페이지를 지정하여 사용자가 레코드가 삭제되었는지 확인할 수 있습니다.
레코드를 삭제하는 서버 동작 추가하기(ASP)
연결을 정의해야 할 경우 [정의] 버튼을 클릭합니다.
값이 숫자인 경우 [숫자] 옵션을 선택합니다. 키 열은 보통 숫자 값만 허용하지만 때때로 텍스트 값도 허용합니다.
사용자에게 간단한 성공 메시지가 포함된 페이지를 지정하거나, 나머지 레코드를 나열하는 페이지를 지정하여 사용자가 레코드가 삭제되었는지 확인할 수 있습니다.
삭제 페이지 테스트
결과 페이지에서 [삭제] 링크를 클릭하면 삭제 페이지가 나타나야 합니다.