2013-07-02 55 views
1

我想从一开始,即时通讯AJAX,jquery和那种东西的noob。但即时通讯正在进行一个项目,在那里我有一个日历,替代者可以指定他是否在特定日期和时间段等。 现在我只是努力解决他们点击一天的问题,以指定他们是可用的,我需要一个弹出窗口来显示,他们可以在哪里指定他们可用的时间。 我在Yii的论坛上发现了几个关于如何做的指南,问题在于弹出窗口永远不会打开。CJuiDialog弹出问题

这里是指定的链接的代码,但是当我检查它的网页上,它说../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); 

回答

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'); 
+0

感谢您的答复。我已经试过你说什么,但结果还是一样。 该链接仍然将我重定向到,../offer/calendar# – CreamYGEEK

+0

如果您仍然被重定向到另一个url,那么您应该检查jQuery是否已加载。在我的回答中,如果没有加载jQuery,或者如果出现javascript错误,您总会被重定向,因为JavaScript代码阻止生成的链接的默认行为不会被执行。 –

+0

它现在正常工作..只需要重新启动Netbeans ..非常感谢! – CreamYGEEK