發表文章

目前顯示的是有「jQuery」標籤的文章

Coldfusion (Railo 3.3.4)使用 POI 元件 寫出 XLSX 檔案

圖片
補充前一篇  Coldfusion (Railo 3.3.4) 使用 POI 元件 讀取 xls/xlsx 修改記錄 我在 POIUtility.cfc 內加入一個 Function 用來處理寫出 XLSX 格式檔案 cfc 程式碼(增加): <!--- 自訂寫出 XLSX 的 EXCEL 檔案--->     < cffunction name= "WriteExcelX" access= "public" returntype= "void" output= "false"         hint= "Takes an array of 'Sheet' structure objects and writes each of them to a tab in the Excel file." >         <!--- Define arguments. --->         < cfargument             name= "FilePath"             type= "string"             required= "true"             hint= "This is the expanded path of the Excel file."             />         < cfargument             name= "Sheets"             type= "any"             required= "true"             hint= "This is an array of the data that is needed for each sheet of the excel OR it is a single Sheet object. Each '

jQuery設定/變更select物件預設值的方法

寫網頁服務最討厭的一件事就是:各種瀏覽器的DOM生成方式不同,導致認為可以的反應卻沒預期發生... 就說 HTML 裡面的 select 這個物件吧 <select id="SelectID">   <option value="A" selected="selected">單位A</option>   <option value="B">單位B</option>   <option value="C">單位C</option> </select> 當我想要 設定 select 預設值時,可以用下面幾種方式: $('#SelectID')[0].selectedIndex = 1; //選取第二個欄位 單位B (索引從0開始) $('#SelectID').get(0).selectedIndex = 1; //效果同上 $('#SelectID').val(selectedValue); //selectedValue是變數,裡面是select option其中一個的value值 $('#SelectID').val('B') //選擇第二欄位,效果同上 $('#SelectID option').filter('[value="'+selectedValue+'"]').attr("selected",true); //filter選項後設定屬性 想要 取得 其選擇值時可以用: var dataValue = $('#SelectID').val();  //取得被選項目的value var dataValue = $('#SelectID').find('option:selected').val(); //效果同上,問題比較少 var dataText = $('#SelectID')

jQuery ajax.responseText注意事項

jQuery操作ajax技巧是相當方便的, 但是操作ajax.responseText,不得不注意到同步問題,如下面的例子: var rtxt = $.ajax ({ type: "GET" ,                    url: "empl.cfm" ,                    data: { eno:"A001",                    dept: "A" } ,                    async: true}) .responseText; var msg = eval (rtext).message; alert (msag); 這個是以 jQuery 利用ajax非同步呼叫 empl.cfm 頁面取得人事資料,而該頁面會以 JSON 格式回傳,該格式結構裡面會包含 message 的變數。 這個看似正常的程式碼其實隱含著很大的問題, 測試過程中,當伺服器回應在200ms以內時這個畫面會顯示 msag 內容, 當大於 200ms 就容易出現無反應 ( alert沒有執行 )。 後來反覆檢查的結果,發現原來是 async 參數會作祟,當 async為 true 時,ajax 為非同步運作:請求頁面同時,script 繼續執行並不等待請求回應,由於 responseText 指令在執行時會需要瀏覽器即時編譯,當編譯完成執行時,若請求的頁面已經返回回應資料,則此時會正常的繼續執行,若請求頁面來不及在編譯執行前返回回應資料,則會造成 rtxt 變成 undefined 狀態,使得接下來的 eval(rtext) 也變成 undefined ,如此直接取得結構 .message 時就會導致 javascript 執行錯誤停止。 當然正常的情況可以不要加入 async 屬性,因為其預設值就是 false 狀態。

將SQL讀出的資料暫存到JavaScript的Array以方便利用

有時候網頁需要讀取列表資料的時候, 通常我會把 SQL 執行語法交由另外一個 Coldfusion page 去執行, 然後取得回傳的內容並且儲存起來。 (這個方式當然是使用 ajax 方式,才不會動不動就要重新 RUN 一次版面) 為什麼要這麼做? 因為多數的時候,這個列表內容可能非常多(1~2千筆), 因此,這個列表就需要動用到分頁顯示, 然而,若是以前的作法是,每次點擊不同的分頁,就必須重新呼叫 SQL 查詢, 並只過濾出我需要顯示的範圍,而這種方式的處理,資料庫讀取就變得相當頻繁,

jQuery.cookie 如何讀取 Coldfusion cfcookie 的設定值

圖片
我們都知道在Coldfusion下設定cookie只需要使用 cfcookie tag, 例如我們設定一個cookie名稱叫cid,它的值為123456,有效期為1天: <cfcookie name="cid" value="123456" expires="1"> 如果用coldfusion來讀取這個只需要下: <cfset idvar = cookie.cid> 或 #cookie.cid# 就可以簡單讀取。 但是某些情況下,若是用到了javascript來讀取這個值,就好像不是這麼一回事了,