2015-10-27 21 views
2

我正在创建一个单页面应用程序。我试图在sql中选择一个表格,并搜索某个日期的字段Date_Due,然后确保另一个字段Date_Complete为空。我想弄清楚如何在我的查询中填充cfparam中的隐藏字段。我的隐藏字段自动有正确的日期完成,因为JQuery,但我需要知道如何将form.value传递给参数,因为没有提交或插入。它只是一个隐藏的领域已经正确的日期,我需要一些如何自动传递给param内部的查询。SPA自动将隐藏的输入值插入到查询中参数

http://jsfiddle.net/byyeh83t/8/

的小提琴示出输入自动地接收的日期。但由于没有提交任何按钮没有按任何东西我如何采取form.value并将其插入到我的查询参数?

<input name="TomorrowsDate" id="TomorrowsDate" type="hidden"/> 

    <cfquery name="tomorrowTextArea"> 
      SELECT * 
      FROM dbo.Dealer_Track_Work 
      WHERE Date_Due = <cfqueryparam value="form.TomorrowsDate" /> 
      AND Date_Complete IS NULL  
     </cfquery> 

回答

2

为你的网页的时间线看起来是这样的:

  • GET - 请求加载HTML页面服务器
  • 使用Javascript/jQuery的执行日期客户端的计算
  • Javascript/jQuery设置隐藏输入的值客户端
  • 您需要依赖于计算的日期查询结果服务器

如果你不想重新载入网页

但因为没有被提交没有按下按钮没有

需要某种异步消息。

var dateForQuery = AddBusinessDays(dateMin, 1); 
$.ajax(
    'your_query_page.cfm', 
    {data: {date: dateForQuery }} 
).done(function(result){ 
    \\ do something with the query result 
}); 

和服务器端:

<cfparam name="URL.date" default="#Now()#" /> 

<cfquery name="tomorrowTextArea"> 
    SELECT * 
    FROM dbo.Dealer_Track_Work 
    WHERE Date_Due = <cfqueryparam value="#URL.date#" /> 
    AND Date_Complete IS NULL  
</cfquery> 

<cfoutput>#SerializeJSON(tomorrowTextArea)#</cfoutput> 
+0

这取决于你想要的查询结果做什么?你想在页面上显示它们? –

+0

必填信息; ColdFusion(服务器)不知道你的Javascript变量,因为它们是客户端。因此您必须与服务器进行通信。这可以通过重新加载页面或某种异步消息来完成。 –

+0

http://chat.stackoverflow.com/rooms/93516/room-for-stefan-braun-and-vicki –