Я вызываю компонент Coldfusion (cfc) с помощью jQuery.post(). Мне нужно целое или строковое представление числа, возвращаемого для использования в URL-адресе.Как заставить Coldfusion cfc выводить числовые данные через JSON в виде строки?
{"PAGE":"My Page Title","ID":19382}
or
{"PAGE":"My Page Title","ID":"19382"}
Вместо того, что я вернусь десятичное:
{"PAGE":"My Page Title","ID":19382.0}
Необходимо, чтобы обновить следующий HTML:
<a href="page.cfm?id=19382" id="pagelink">My Page Title</a>
Концептуально, я полагаю, есть несколько ответов:
1) Я мог бы использовать jQuery для захвата числа слева от десятичной точки.
2) Я мог заставить Coldfusion отправить номер в виде строки.
3) Я мог бы генерировать всю серверную ссылку и просто заменить тег вся ссылка HTML (не предпочтительный ответ, но, возможно, это лучший)
Кто-нибудь знает, как сделать 1 или 2? Улучшено ли 3?
Соответствующие Javascript: (Не оптимизировано)
$(".link").live('click', function() {
var $linkID, serviceUrl;
serviceUrl = "mycfc.cfc?method=getPage";
$linkID = $(this).attr("rel");
$.post(serviceUrl, { linkid: $linkID }, function (result) {
$('#pagelink').val(result.TITLE);
if (result.FMKEY.length) {
// NEED the ID number WITHOUT the .0 at the end
$('#pagelink').attr("href") = "page.cfm?id=" + result.ID;
$('#pagelink').text(result.TITLE);
}
}, "json");
});
Мой CFC:
<component output="no">
<cfsetting showdebugoutput="no">
<cffunction name="getPage" access="remote" returnFormat="JSON" output="no" hint="Looks up a Page Title and ID">
<cfargument name="linkID" type="string" required="yes">
<cfset var page = queryNew("id,title")>
<cfset var result = structNew()>
<cfquery datasource="myDatasource" name="page">
SELECT TOP 1 id, title
FROM pages
WHERE linkID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.linkID#">
</cfquery>
<cfif page.recordcount>
<cfset result.id = page.id>
<cfset result.title = page.title>
</cfif>
<cfreturn result>
</cffunction>
</component>
Спасибо, Генри. Я думал, что сойду с ума. Рад, что я не единственный, кто сталкивался с этим. Также имеет смысл, что я мог бы использовать число с .0. Не думал об этом. –