0
第一:我不知道我的標題是否構建得很好,我不想爲此而道歉! 我有一個模式的形式,其中顯示所有用戶發送的消息。當我點擊消息時,應該以相同的形式通過ajax請求打開它!問題是,當我點擊一些消息,似乎有冒泡發生。刷新頁面後,有時會再次點擊最後一條消息,有時不會。不知道那是什麼行爲。會給你提供一些建議,因爲我一直在掙扎着將近1天..我想打開所選的消息。我試過event.stopImmediatePropagation()
,但它每次都會打開第一條消息。Yii2 jQuery的冒泡處理阿賈克斯請求
我的模態代碼:
<?php
Modal::begin([
'header' => '<h2><em>Messages</em></h2>',
'headerOptions' => [
'class' => 'text-center',
],
'id' => 'modal',
'size' => 'modal-md',
]);
echo "<div id='userMessages' style='border: 1px solid black'>";
if(\app\controllers\UserController::getMessages())
{
$messages = \app\controllers\UserController::getMessages();
echo "<table class='table table-responsive'>
<thead class='text-center thead-style'>
<td>Title</td>
<td>Author</td>
<td>View</td>
</thead>";
foreach ($messages as $message)
{
echo "<tr>
<td class='text-center'>". $message['message_title'] ."</td>
<td class='text-center'>". $message['message_author'] ."</td>
<td class='text-center'>" . Html::a('<span class=\'glyphicon glyphicon-eye-open\'></span>',
['#'],
['class' => 'view-message']);
$this->registerJs("$('.view-message').on('click', function(event){
event.preventDefault();
$.ajax({
url : '". \yii\helpers\Url::to(["message", "id" => $message['message_id']]) ."',
cache : false,
success : function(data){
$('#userMessages').html(data);
}
});
})")
. "</td>
</tr>";
}
echo "</table>";
}
echo "</div>";
Modal::end();
?>
我ActionMessage的:
public function actionMessage($id)
{
$currMessage = UsersMessages::find()->where(['message_id' => $id])->one();
return $this->renderAjax('message',[
'msg' => $currMessage
]);
}
很高興有幫助:) – madalinivascu
發生問題:)'jquery.js:9175 GET http:// letsblog/user/message19?_ = 1491466863783 404(Not Found)'。我試圖在'Url:to [「message」,「id」=>'id']'中傳遞id這樣的id,但是沒有成功:/你可以再次嘗試一下:) –
嘗試'url:' 「。\ yii \ helpers \ Url :: to([」message「])。」?id ='+ id,' – madalinivascu