這是我的查詢,我把它放在JSON中,然後在表中存儲信息。當我在表格中檢查結果時,我看到輸出結果並沒有給我我想要的東西。我的想法是在每個開始日期和結束日期之間獲取所有日期。我的代碼只給了我結束日期。這裏是我的代碼:如何從cfquery創建JSON?
//Here is my query
<cfquery name="myQuery" datasource="test">
Select UserID, UserEmail, PickDateTime, DropDateTime
From UserInfo
Order by PickDateTime
</cfquery>
//This is my JSON
<script>
myJSON = {
<cfoutput query="myQuery">
<cfloop from="#PickDateTime#" to="#DropDateTime#" index="i" step="#CreateTimeSpan(1,0,0,0)#">
"#currentrow#":{"ID":"#UserID#","date":"#dateformat(i,'mmddyyyy')#","email":"#UserEmail#"},
</cfloop>
</cfoutput>
}
//Here is my function that creates the table
function getData(){
myVar="<table><tr><td>ID</td><td>Date</td><td>Email</td></tr><tbody>"
for(key in myJSON){
myVar+=
"<tr>"+
"<td>"+myJSON[key].ID+"</td>"+
"<td>"+myJSON[key].date+"</td>"+
"<td>"+myJSON[key].email+"</td>"+
"</tr>"
}
myVar+="</tbody></table>"
document.getElementById('myTable').innerHTML = myVar
}
</script>
,這裏是我的html:
<div id='myTable'></div>
這裏是我的表,電流輸出:
ID Date Email
1 01092016 [email protected]
2 01112016 [email protected]
3 01132016 [email protected]
3 01162016 [email protected]
4 01182016 [email protected]
5 01192016 [email protected]
正如你可以在我的輸出,我看到剛剛結束日期,但我沒有得到日期之間。我應該從開始到結束日期獲取所有日期。如果我的開始日期是2015年1月20日,而我的結束日期是2015年1月24日,我希望在兩者之間有日期。我不確定我的JSON是否正確創建或者我的cfloop中有什麼錯誤。如果有人能幫助解決這個問題,請告訴我。
如果你傾倒你的查詢結果你看到所有你所期望的記錄? –
ColdFusion是否可以真正循環使用日期變量? ''這看起來很可疑 –
@JamesAMohler - 是的,它起作用,因爲日期對象是內部的數字。那麼... *大多數*的作品。當與createTimeSpan結合使用時,索引被轉換爲'java.lang.Double',在某些情況下創建[微妙舍入問題](http://stackoverflow.com/a/29214873/104223)。就個人而言,我避免它,並使用整數循環+日期函數。 – Leigh