2013-08-02 3 views
0

cftable 또는 cfloop을 사용하여 ColdFusion에서 항목 테이블을 출력합니다. 그러나 테이블 행 중 하나를 클릭하여 편집기 페이지를 호출하는 올바른 방법은 무엇입니까? 여기 ColdFusion에서 테이블 행 편집

코드입니다 :

<table class="grid"> 
<tr> 
    <th>id</th> 
    <th>Date</th> 
    <th>Description</th> 
    <th>Status</th> 
    <th>Urgency</th> 
    <th>Severity</th> 
</tr> 
<cfloop query="GetIssues"> 
<tr> 
    <td><cfoutput>#id#</cfoutput></td> 
    <td><cfoutput>#CreatedOn#</cfoutput></td> 
    <td><cfoutput>#ShortDesc#</cfoutput></td> 
    <td><cfoutput>#Status#</cfoutput></td> 
    <td><cfoutput>#Urgency#</cfoutput></td> 
    <td><cfoutput>#Severity#</cfoutput></td> 
</tr> 
</cfloop> 
</table> 

나는 편집기 페이지로 GET 요청을하려면 a href를 사용할 수 있지만/오른쪽 안전한 방법입니다?

+2

먼저 .... cftable을 사용하지 마십시오. 두 번째 ... 코드를 볼 수 있습니까? –

+0

@Scott Stroz : Updated ... – Paul

답변

3

확실히 편집기 페이지에 대한 링크를 만들고 ID를 전달할 수 있습니다. 그러나 ID가 숫자 인 경우 사기성 사용자가 다른 항목의 ID를 쉽게 추측 할 수 있습니다. 이 문제를 완화하기 위해 내 ID에 UUID를 사용하는 경향이 있습니다. 다른 요소의 ID를 추측하는 것은 극히 어렵습니다.

또한 각 td를 래핑하는 대신 cfoutput을 래핑하는 것이 더 좋으며 변수 이름의 범위를 지정해야합니다. 예를 들어

:

<cfoutput> 
    <cfloop query="GetIssues"> 
     <tr> 
     <td><a href="edit.cfm?id=#GetIssues.id#">#GetIssues.id#</a></td> 
     <td>#GetIssues.CreatedOn#></td> 
     <td>#GetIssues.ShortDesc#</td> 
     <td>#GetIssues.Status#</cfoutput></td> 
     <td>#GetIssues.Urgency#</cfoutput></td> 
     <td>#GetIssues.Severity#</td> 
     </tr> 
    </cfloop> 
</cfoutput> 
+0

cfoutput을 쿼리 특성과 함께 사용하면 적은 코드로 동일한 결과를 얻을 수 있습니다. 또한 키 필드를 양식 필드 이름의 일부로 만들려는 경우 uuid의 하이픈이 문제를 일으킬 수 있습니다. 나는 저에게 일어나는 그런 것의 막연한 기억을 가지고 있습니다. –

+0

@ Dan Bracuk : 예를 쓸 수 있습니까? – Paul

+0

@DanBracuk query 속성과 함께 cfoutput을 사용하면 다음 두 줄의 코드 만 저장됩니다. D. 필자가 보여준 방식대로하면 메인 루프 내부에서 필요한 경우 다른 쿼리를 루프하는 것이 더 쉬워집니다. 양식 필드 이름과 ID 안에 UIDS 값을 사용했으며 문제가 없었습니다. –