smarty模板 - 在url中传递javascript变量

时间:2012-12-14 08:29:38

标签: php javascript smarty fullcalendar

我是smarty模板的新手 我添加了日历,我只想将日历日期传递给其他页面。

例如:
当用户点击24-12-2012日期时,我需要一个类似以下格式的网址:
`eventpost.php?ED = 24-12-2012``

我有calendar.tpl文件:

$('#calendar').fullCalendar({
    dayClick: function (date, allDay, jsEvent, view) {
        var myJsDate = date;
        var dispDate = myJsDate.getDate() + '-' + (myJsDate.getMonth() + 1) + '-' + myJsDate.getFullYear(); // 24-12-2012
        var det = dispDate
        $("#currentDate").val(dispDate);
        $('#offDayPopUp').dialog({
            autoOpen: true,
            modal: true,
            resizable: false,
            width: 300,
            height: 180,
            draggable: false
        });
        $('#calmonth_' + myJsDate.getMonth()).addClass('cal_month_active');
    },

HTML:

<div id="offDayPopUp" class="offDayDialog" title="Create Event,Commitment,Visiting Area.">
    <div class="CrateDiv">
        <div style="float:left; padding-right:10px;"><b>Date :</b></div>
        <div><input type="text" name="currentDate" id="currentDate" readonly="readonly" /></div>
        <ul>
            <li><a href="{$cfgRoot}/event/eventPost.php"><b>Create A New Event.</b></a></li>
            <li><a href="{$cfgRoot}/commitment/commitment.php"><b>Create A New Commitment.</b></a></li>
            <li><a href="{$cfgRoot}/area/areaPost.php"><b>Create A New Visiting Area.</b></a></li>
        </ul>
    </div>
</div>

我只想将该日期从JavaScript传递给url,如:

eventPost.php?ed=24-12-2012
commitment.php?ed=24-12-2012
areaPost.php?ed=24-12-2012

2 个答案:

答案 0 :(得分:2)

遵循danish hasmi使用PHP的可能性,更好地使用这样的PHP。 Javascript并不意味着用于可以在服务器端完成的数据操作。

//[...]
<li><a href="{$cfgRoot}/event/eventPost.php?ed={php}echo date('d-m-Y',mktime());{/php}"><b>Create A New Event.</b></a></li>
//[...]

请参阅mktime on php.net调整mktime参数并将其设置在您想要的日期。

<强> //更新

尽管使用PHP更有意义,但这就是为了您的利益而在Javascript中执行此操作的方法。

$('#calendar').fullCalendar({
    dayClick: function (date, allDay, jsEvent, view) {
        var myJsDate = date;
        var dispDate = myJsDate.getDate() + '-' + (myJsDate.getMonth() + 1) + '-' + myJsDate.getFullYear(); // 24-12-2012

        $(".CrateDiv > ul").find("li").each(function() {
           var atmhref = $("a",this).attr("href");
           $("a",this).attr("href",atmhref+"?ed="+dispDate);
        });
        //...

答案 1 :(得分:1)

尝试这种方式,您可以使用onclick事件并使用Javascript函数传递所选日期

<script>
 {literal}
 function golink(type) {
   var selecteddate = $("#currentDate").val();
   if(type=='event'){
       location.href="http://www.mysite.com/event/eventPost.php?ed="+selecteddate;
    }
   if(type=='commitment'){
       location.href="http://www.mysite.com/commitment/commitment.php?ed="+selecteddate;
    }
  if(type=='area'){
       location.href="http://www.mysite.com/area/areaPost.php?ed="+selecteddate;
    }
 }
  {/literal}
</script>


<div id="offDayPopUp" class="offDayDialog" title="Create Event,Commitment,Visiting Area.">
    <div class="CrateDiv">
        <div style="float:left; padding-right:10px;"><b>Date :</b></div>
        <div><input type="text" name="currentDate" id="currentDate" readonly="readonly" /></div>
        <ul>
            <li><a href="#" onclick="golink('event')"><b>Create A New Event.</b></a></li>
            <li><a href="#" onclick="golink('commitment')"><b>Create A New Commitment.</b></a></li>
            <li><a href="#" onclick="golink('area')"><b>Create A New Visiting Area.</b></a></li>
        </ul>
    </div>
</div>