CJuiDialog всплывающие проблемы

Я хочу начать с того, что я новичок в 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);

1 ответ

Решение

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');
Другие вопросы по тегам