我有一個Sybase SP,它將日期作爲唯一參數並返回有關訂單的信息。我從CF頁面上的JQuery datepicker獲取日期 - 格式爲yy-mm-dd。當沒有輸入時,SP默認爲getDate()。當我在表單上輸入日期時,一切正常。當我不發送日期 - 日期字段留空 - 我得到一個CF錯誤告訴我,該參數不是類型的日期。我知道SP正在發送日期時間值,但是如何讓CF功能識別它?JQuery日期類型,發送到CF函數的Sybase日期類型
在SP ...
declare @order_dt datetime
If @order_dt IS NULL
BEGIN
SELECT @order_dt = getDate()
END
在CFC ...
<cfargument name="order_dt" type="date" required="true" hint="order date to search for" >
和
<cfprocparam type="In" cfsqltype="CF_SQL_DATE" dbvarname="@order_dt" value="#order_dt#" null="No">
在.CFM頁面...
<!--JQuery datepicker -->
<script type="text/javascript">
$(function() {
$("#datepicker").datepicker({ dateFormat: "yy-mm-dd" }).val()
});
而且形式如下:
<form id="xxxxForm">
<label for="date1">Pick a Date... </label>
<br>
<p><input type="text" id="datepicker" value="" name="date1"></p>
Then choose 'Search'...<br>
<input type="submit" name="submit" value="Search">
<br>
<br>
</form>
我怎樣才能獲得CF認識到這是一個很好的價值?我在想也許如果我宣佈@order_dt只是一個日期?
如果您沒有發送日期到cfc方法,您將繼續得到該錯誤,因爲date參數是必需的,並且必須是date類型的。如果你想讓它沒有日期,那麼不要求它,並給它一個默認值,這是一個日期,以便它通過procparam檢查。 –
同意。在你的''中設置'required ='false''或者使用'default =「#now()#」'。 –
另外,我假設你只想要一個來自CF的日期,而不是日期時間?對於日期時間值,您需要在'' –