[英]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>
不允許的 method
, name
和value
屬性。 只需使用href
重定向,然后在GET中將所需的參數傳遞給服務器即可。 因此,刪除<div name="notificationValue">
和Javascript並改用它:
<a href="<?= Yii::app()->baseurl ?>/index.php?r=TrnNotification/notif¬ificationValue=<?= $notif_value; ?>"><?= echo $date; ?></a>
和服務器端控制器:
public function actionNotif(){
if(isset($_GET['notificationValue'])){
$this->redirect('TrnProjectIT/admin');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.