1

我想开始,我是 AJAX、jquery 和那种东西的菜鸟。但我目前正在做一个项目,我有一个日历,替代者可以指定他是否在给定的日期和时间段等。现在我只是在努力解决然后他们点击一天的问题,以指定它们是可用的,我需要一个弹出窗口来显示,他们可以在其中指定它们可用的时间。我在 Yii 的论坛上找到了几个关于如何做到这一点的指南,问题是虽然弹出窗口永远不会打开。

这是带有指定链接的代码,但是当我在主页上检查它时,它说 ../offer/calendar# <-- 一天中的每个链接都链接到日历而不是弹出窗口

            $url = CHtml::ajaxLink(Yii::t('job', 'Ledig'), Yii::app()->createUrl('offer/createOffer'), array(
            'onclick' => '$("#offerDialog").dialog("open"); return false;',
            'update' => '#offerDialog'
                ), array('id' => 'showOfferDialog'));
        /** You can query the database for an entry for this day if you like or print out a message on each day.  Uncomment these two lines.  * */
        $this->calendar.= '<div class="' . $this->style . '-normal">'. $url . '</div><br/>';
        $this->calendar.= str_repeat('<p> </p>', 2);
4

1 回答 1

0

CHtml::ajaxLink方法具有以下签名:ajaxLink(string $text, mixed $url, array $ajaxOptions=array ( ), array $htmlOptions=array ( ))

onclick在这种情况下,您尝试绑定的事件是 HtmlOption 而不是 Ajax 选项,因此,您需要这样指定它。

当您指定onclick事件以显示您的对话框时,您还需要删除该return false;语句,因为这会阻止 ajaxCall 被执行。

所以你的定义应该是这样的:

$url = CHtml::ajaxLink(
            Yii::t('job', 'Ledig'),
            Yii::app()->createUrl('leads/admin'),
            array('update' => '#offerDialog'),
            array('id' => 'showOfferDialog', 'onclick' => '$("#offerDialog").dialog("open");')
        );
//Show Link
echo $url;

$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'offerDialog',
    // additional javascript options for the dialog plugin
    'options'=>array(
        'title'=>'Dialog box 1',
        'autoOpen'=>false,
    ),
));

echo 'dialog content here';

$this->endWidget('zii.widgets.jui.CJuiDialog');
于 2013-07-05T09:54:11.103 回答