簡體   English   中英

如何根據通知重定向到通知的動態頁面

[英]How can I redirect to dynamic page on notification according the notification

我正在使用PHP和數據庫中的動態數據在Yii中進行通知。 這是我的CSS代碼

<style>
#notification_count 
{
padding: 3px 7px 3px 7px;
background: #cc0000;
color: #ffffff;
font-weight: bold;
border-radius: 9px;
-moz-border-radius: 9px; 
-webkit-border-radius: 9px;
position: absolute;
margin-top: -11px;
font-size: 11px;
}
</style>

這是HTML

<div id="notificationContainer" style="width:300px">
                        <div id="notificationTitle" style="padding: 8px; font-size: 13px; font-weight: bold; color:#000000; border-bottom: 1px solid #dddddd;">Notifications</div>

                        <div id="notificationsBody" class="notifications item-test"  style="padding: 8px; color:#000000; overflow-y:auto;max-height:300px" >
                            <?php
                            if($count == 0){
                                $notif = '<div align="center" style="font-style:italic;color:#d3d3d3; padding-bottom:5px;">No Notification</div>';
                                echo $notif;
                            }else{
                                for($i=1; $i<=$count; $i++){
                                    $notif_query = Yii::app()->db->createCommand("SELECT NOTIF_DETAIL FROM (SELECT NOTIF_DETAIL, ROWNUM AS RN FROM (SELECT NOTIF_DETAIL FROM TRN_NOTIFICATION WHERE RECIPIENT = '$user' AND SENDER != '$user' AND UNREAD = 'UNREAD' ORDER BY NOTIF_ID DESC)WHERE ROWNUM <= $i)WHERE RN = $i")->queryScalar();
                                    $date = Yii::app()->db->createCommand("SELECT UPDATE_DATE FROM (SELECT UPDATE_DATE, ROWNUM AS RN FROM (SELECT UPDATE_DATE FROM TRN_NOTIFICATION WHERE RECIPIENT = '$user' AND SENDER != '$user' AND UNREAD = 'UNREAD' ORDER BY NOTIF_ID DESC)WHERE ROWNUM <= $i) WHERE RN = $i")->queryScalar();
                                    $notif_value = Yii::app()->db->createCommand("SELECT NOTIF_ID FROM (SELECT NOTIF_ID, ROWNUM AS RN FROM (SELECT NOTIF_ID FROM TRN_NOTIFICATION WHERE RECIPIENT = '$user' AND SENDER != '$user' AND UNREAD = 'UNREAD' ORDER BY NOTIF_ID DESC)WHERE ROWNUM <= $i) WHERE RN = $i")->queryScalar();

                                    $notif = '<div>'.$notif_query.'</div>'; ?>
                                        <div style="border-bottom: 1px solid #dddddd;" name="notificationValue" id="notificationValue" value="<?php echo $notif_value; ?>" method="POST"><?php echo $notif; ?><div align="right" style="color:grey; font-style:italic;"><?php echo $date; ?></div></div>
                                    <?php
                                }
                            }
                            ?>      
                        </div>

                        <div id="notificationFooter" style="background-color: #e9eaed; text-align: center; font-weight: bold; padding: 8px; font-size: 12px; border-top: 1px solid #dddddd;"><a href="<?php echo Yii::app()->baseUrl; ?>/index.php?r=TrnNotification/admin">See All</a></div>
                    </div>

這是我的JavaScript,重定向到我的控制器

$(function(){
 $('#notificationValue').on('click',function(){
    window.location.href = "<?php echo Yii::app()->baseurl; ?>/index.php?r=TrnNotification/notif";
 });
});

如果有人推薦或更改與用戶相關的內容,這可以讓我收到通知。 但是問題是我無法發送所選通知的值,因此該值可以發送到我的控制器並更改每個通知的標志以將其標記為“已讀”,並且不再顯示在通知列表中。

這是一些我試圖在控制器中獲取選定值的代碼

public function actionNotif(){
    $value = $_POST['notificationValue'];

    if(isset($value)){
        $this->redirect(array('TrnProjectIT/admin'));
    }
}

我總是得到一個錯誤,說undefined index : notificationValue 如何將通知的動態值傳遞給控制器​​,以便可以基於用戶選擇的通知重定向到特定頁面? 我可能認為循環和傳遞值時存在問題,但是我沒有任何解決方案。 有誰能夠幫助我?

提前致謝

您總是會收到一條錯誤消息,指出undefined index : notificationValue只是因為您沒有向服務器發送任何內容。

  • 您有一個div,其中包含<div> 不允許的 methodnamevalue屬性。

只需使用href重定向,然后在GET中將所需的參數傳遞給服務器即可。 因此,刪除<div name="notificationValue">和Javascript並改用它:

<a href="<?= Yii::app()->baseurl ?>/index.php?r=TrnNotification/notif&notificationValue=<?= $notif_value; ?>"><?= echo $date; ?></a>

和服務器端控制器:

public function actionNotif(){
    if(isset($_GET['notificationValue'])){
        $this->redirect('TrnProjectIT/admin');
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM