1

私のフォームでは、ユーザーがディレクトリを選択して、そこに含まれるファイルを表示できます。

(ファイル.cfm)

<form action="#buildURL('main.files')#" method="post">

        <!--- Show the subfolder path, unless already at top level --->
        <cfif subfolderPath EQ "">
            <h2>You are at the top level.</h2>
        <cfelse>
            <h2>Current Folder: #subfolderPath#</h2>
        </cfif>

        <!--- Provide a drop-down list of subfolder names --->
        Select folder:
        <select name="subfolderPath" onChange="this.form.submit()">
            <!--- Provide an option to go up one level to the parent folder, --->
            <!--- unless already at the BaseFolder --->
            <cfif listLen(subfolderPath, "/") gt 0>
                <cfset parentFolder = listDeleteAt(subfolderPath, listLen(subfolderPath, "/"), "/")>
                <option value="#parentFolder#">[parent folder]</option>
            </cfif>

            <!--- For each record in the query returned by <cfdirectory> --->
            <cfloop query="DirectoryQuery">
                <!--- If the record represents a subfolder, list it as an option --->
                <cfif Type eq "Dir">
                    <option value="#subfolderPath#/#Name#">#Name#</option>
                </cfif>
            </cfloop> 
        </select>

        <!--- Submit button to navigate to the selected folder --->
        <input type="submit" value="go">
    </form> 

ファイルが表示されると、別のページを呼び出す削除機能があります。

<td align="absmiddle"><a href="#buildUrl('main.deleteFile?filename=#name#&folder=#rereplace(subFolderPath, '/','')#')#" onClick="alert('Are you sure you want to delete this file?')"><img src="/art/assets/images/delete.png" title="delete file" /></a></td>

deleteFile ページ (deleteFile.cfm) で、ファイルが削除されます。

<cfset local.filePath = ExpandPath( ".\upload\views\files\#rereplace(url.folder, '/','')#\" ) />
    <cffile action="delete"
            file="#local.filePath##url.filename#"
    />

その後、ユーザーは前のページに戻されます。

<cflocation url="#buildUrl('main.files')#" />

ただし、ファイルが削除されたばかりのディレクトリの同じビュー内ではありません。ユーザーをファイルページに戻し、ユーザーがいたディレクトリのビューを維持するにはどうすればよいですか?

4

1 に答える 1

2

私はいくつかの方法を考えることができます

まず、AJAXを使用して削除アクションファイルを呼び出すことができます。正常に完了したら、現在のページから要素を削除します。これは派手な方法ですが、これに少し慣れていないように見えるため、実行するのが難しい場合があります。

次に、現在のページのコンテキストを削除ファイル(subFolderPath変数)と一緒に送信し、リダイレクト時にcflocationに追加できます。url.folder変数を使用して既に持っているように見えるので、次のようにします。

<cflocation url="#buildUrl('main.files', "subfolderPath=#rc.folder")#" />

FW / 1を使用しているように見えるので、「buildURL()」はアドバタイズされたとおりに機能し、URLとフォームの変数はrcスコープ内にあると想定しました。

cflocationから最初のページに戻ったら、選択したフォルダーに選択内容を戻します。タグを作成するループで<option>、オプションを選択する必要があるかどうかを確認するチェックを追加します。私は通常次のようなことをします:

<option value="..." <cfif listLast(rc.subFolderPath,"\") EQ name>selected</cfif>>#name#</option>
于 2012-11-09T18:01:15.547 に答える