在yii中通过ajax更新2个元素

时间:2014-05-05 09:05:57

标签: ajax yii

我在yii中有一个ajax链接,当用户点击它做某事并更新元素html(td的内容)而没有刷新页面如何更改2元素html?

我解释得更多: 在视图中我有一个表格,一些td用于显示信息,一个td用于发送信息(有一个图像ajaxlink)和一个td用于内容消息(例如:“不发送”)

当用户点击图片链接时,调用一个函数和有效信息(...)并更改td的消息('验证成功')。(“不发送”更改为“验证成功”) 我做了我被告知但我想删除ajaxlink并用简单的图像替换它如何
我能做到吗?

我补充说:

CHtml::image(Yii::app()->theme->baseUrl . "/img/gridview/email-send.png", '', array('title' =>  'sended success'))

view.php:

<td id="send_<?php echo CHtml::encode($profileInformationServices->id); ?>"><?php echo "not send"; ?></td>
<td id="sended_<?php echo CHtml::encode($profileInformationServices->id); ?>">

      <?php                                        
            echo  $profileInformationServices->send ?  CHtml::image(Yii::app()->theme->baseUrl . "/img/gridview/email-send.png", '', array(                                                                'title' =>  'sended success')):
                      CHtml::ajaxLink(CHtml::image(Yii::app()->theme->baseUrl . "/img/gridview/send.png", '', array(
                                                            'title' => 'Send for valid')), Yii::app()->createUrl('/profileInformationService/send'),
                 array( // ajaxOptions
                     'type' => 'POST',
                        'data' => array( 'id' => $profileInformationServices->id ),
                           'update' => '#send_'.$profileInformationServices->id,
                        )

                      );

         ?>


 </td>

控制器:

public function actionSend() {
   if (Yii::app()->request->isPostRequest) {
        $model = $this->loadModel($_POST["id"]);

        $model->send = 1;
        $model->save();
        echo "sended success";
    }
}

1 个答案:

答案 0 :(得分:1)

使用ajaxLink 回调更改td中的文字。

    <?php
    //I am keeping your ternary code in if-else condition for readability

    if($profileInformationServices->send)
    {
        echo CHtml::image(Yii::app()->theme->baseUrl . "/img/gridview/email-send.png", '', array('title' =>  'sended success'));
    }
    else
    {
        echo CHtml::ajaxLink
        (
            CHtml::image(Yii::app()->theme->baseUrl . "/img/gridview/send.png", '', array('title' => 'Send for valid')), 
            Yii::app()->createUrl('/profileInformationService/send'), 
            array
            (
                'type' => 'POST',
                'data' => array('id' => $profileInformationServices->id),                    
                'success'=>'function(data) 
                {
                     if(data=="sended success")
                     {
                        $("#send_'.$profileInformationServices->id.'").html("validation is success");
                     }
                }',
            )
        );
    }
    ?>