2013-01-31 1 views
0

표현을 위해 쿼리의 데이터를 html 테이블로 출력하고 있습니다. 테이블의 오른쪽 구석에 "업데이트"버튼과 "삭제"버튼이 있습니다. 내가 뭘하려고 오전html 테이블의 특정 행 업데이트 - ColdFusion

은 다음과 같습니다

  • 내가 업데이트 버튼을 누르면 모달가 열립니다. 해당 모달 내에서 현재 행의 값을 미리 정의하고 특정 행을 편집 할 수있는 양식이 있습니다.
  • 행의 삭제 단추를 누르면 해당 행이 삭제되고 페이지가 다시로드되기를 원합니다.

이, 오른쪽에있는 마지막 두 개의 열이 버튼 내 HTML 테이블입니다 이것은

**Survey Name** **Category** **Weight** **Update** **Delete** 
Consultation Ambiance     20   Update Delete 
Consultation Consultation    40   Update Delete 
Consultation Follow Up    40   Update Delete 

이 테이블을 생성하는 내 첫 번째 쿼리입니다

<cfquery name="categories" datasource="#dsn#"> 
     select s.name, s.id as surveyid, rc.categoryname, rc.id as categoryid, sc.cweight 
     from survey_categories sc 
     join surveys s on s.id = sc.surveyidfk 
     join rating_categories rc on rc.id = sc.categoryidfk 
     where sc.surveyidfk='#form.survey#' 
    </cfquery> 
,369 내가 "업데이트"를 누르면

  • 이 양식은 내가 사용자가 필요로하는 경우에 데이터베이스에있는 카테고리의 나머지 부분을 얻기 위해 select 태그 주위에 여분의 CFLOOP을 가지고 내가 접근하고있는 모양이다 카테고리를 변경하십시오.
  • 따라서 예를 들어 나는이 양식은 드롭 다운 메뉴와는 도움이 될 수 아래 텍스트 상자
  • 작은 메모 수 40Consultation을해야 내 테이블에 두 번째 행에 업데이트 버튼을 누를 경우 테이블을 출력하는 첫 번째 쿼리는 쌍 (id, surveyName, Category, Weight)과 함께 고유 ID를 출력합니다. 그래서 결국에 업데이트 쿼리 내가이 도움이 될 수 있습니다 얼마나 많은 모르는 뭔가

update categories set category='Example', weight='30' where id='345'

처럼 될 것입니다. 내가 너무 많이 쓴 생각하기 때문에

<cfoutput> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button> 
     <h3 id="myModalLabel">Update</h3> 
     </div> 
     <div class="modal-body"> 
     <form name="update" action="updateSCpair.cfm" method="post"> 
      <input type="text" value="#categories.name#" class="input-xlarge" disabled> <br /> 
      <select name="categories"> 
       <cfloop query="ratingCat"> 
        <option value="#ratingCat.id#" >#ratingCat.categoryName#</option> 
       </cfloop> 
      </select> 
      <br /> 
      <input class="span3" type="number" placeholder="Enter Category Weight" required > 

     </div> 
     <div class="modal-footer"> 
     <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> 
     <button class="btn btn-primary">Save changes</button> 
     </form> 
    </div> 

    </cfoutput> 

UPDATE 은 더 명확하게 할 수 있습니다. 양식 제출시 모달로 전화해야합니다. 현재 버튼을 양식으로 바꾸고 숨겨진 변수를 통해 모든 데이터를 전달해야합니다. 문제는 이것이 나를 위해 작동하지 않는다는 것입니다. 여기에 또 다른 예가 있지만 작동하지 않는 것으로 나타났습니다. EXAMPLE

+0

그래서 작동하지 않는 것은 무엇입니까? 업데이트 양식을 제출할 때 렌더링 된 테이블로 페이지를 다시로드 할 수 있어야하며 업데이트 쿼리가 성공적이라고 가정 할 때 쿼리 값에 업데이트가 반영되어야합니다. 다시 : 삭제 작업, 사람들은 종종 그것을 삭제합니다 처리 페이지에 행의 ID를 제출하는 작은 형태로 삭제 버튼/아이콘/뭐든 포장됩니다. AJAX 요청을 사용하여 삭제 버튼을 클릭 할 때도 동일한 작업을 수행 할 수 있습니다. – existdissolve

+0

글쎄, 내가 update를 누를 때 팝업으로 옮겨지는 값이 정말로 업데이트하고 싶은 값을 반영하지 못한다. – Geo

+0

cfqueryparam을 사용하면 SQL 인젝션을 열어 둔다. – duncan

답변

3

가장 간단한 방법은 각 행의 끝에 두 개의 양식이 있다고 생각합니다. 이미 버튼이 있습니다. 나머지는 숨겨진 필드 일 수 있습니다.

업데이트 양식에는 팝업을 시작하기위한 대상 속성이 있습니다. 이미 쿼리의 값을 가지고 있으므로 숨겨진 필드로 팝업에 제출하면됩니다.

삭제 양식이 현재 coldfusion 페이지에 제출됩니다. 페이지 시작 부분에 다음과 같이 표시됩니다.

<cfif StructKeyExists(form, "DeleteMeOrSomethingLikeThat")> 
code to delete record 
</cfif> 

이렇게하면 시작할 수 있습니다. 나중에 개선하려는 경우 할 수 있습니다.

마지막으로 한 번에 하나씩 해보십시오.

+0

삭제 버튼을 아직 시작하지 않았습니다. 귀하의 방법을 시도 할 것이지만 도움을 주셔서 감사합니다. – Geo

+0

삭제 버튼이 업데이트 1보다 쉽습니다. –