解決:My97DatePicker 日期插件引用在PHP文件中maxDate和minDate控制失效問題


開發環境:

  語言:PHP

  框架:ThinkPHP

 

問題:在引用插件My97DatePicker時,想實現:開始日期不能大於結束日期,結束時間不能小於開始時間

步驟一、查看文檔官方文檔http://www.my97.net/dp/demo/index.htm可以看到實現辦法如下:

 

 步驟二、按照文檔說明,作用於自己代碼中:

<input name="start_time" type="text" id="start_time" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'end_time\')}'})"/>

<input name="end_time" type="text" id="end_time" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'start_time\')}',maxDate:'{$max_end_norm}'})"/>

運行發現,maxDate和minDate控制總是失效

排查發現問題:

查看緩存Cache發現如下問題:

<input name="start_time" type="text" id="start_time" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'#F<?php echo ($dp["$D('end_time')"]); ?>'})"/>
<input name="end_time" type="text" id="end_time" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd',minDate:'#F<?php echo ($dp["$D('start_time')"]); ?>',maxDate:'<?php echo ($max_end_norm); ?>'})"/>

可以看到maxDate和minDate內容全部被當做PHP變量<?php echo ($dp["$D('end_time')"]); ?>和<?php echo ($dp["$D('start_time')"]); ?>編譯輸出了,而我們想要的結果是作為常量;

 

解決辦法:

方法1.在標簽的{$之間增加一個空格,讓php標簽無效參考鏈接 (推薦方法)

例如:{$name}  修改成:{ $name}

 

方法2.改變默認的開始標記和結束標記 參考鏈接 

'TMPL_L_DELIM'=>'<{',

'TMPL_R_DELIM'=>'}>',

 

方法3.可以使用literal標簽來防止模板標簽被解析 參考鏈接  

 <literal>{$name}</literal>

 

以上自己遇到的問題及解決辦法;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM