В моем приложении Cake PHP пользователи могут добавить команду в свой список наблюдения.Я сделал добавление и удаление для наблюдения за операцией Ajax с использованием JQuery JsHelper.Обе операции работают нормально независимо.
Однако, когда пользователь добавляет команду в список наблюдения (работает нормально) и сразу нажимает на ссылку удаления из списка наблюдения, он загружает только представление удаления вместо обновления div без обновления страницы.Но после добавления команды в список наблюдения пользователь нажимает на некоторые другие ссылки (не-ajax), а затем пытается удалить группу из списка наблюдения, все работает нормально.
Я предполагаю, что что-то не обновляется правильно, когда пользователь добавляетв список наблюдения и немедленно удалить из списка наблюдения.Ниже представлен контроллер и просмотр кода для обоих действий.
КОД КОНТРОЛЛЕРА
function add($team_id = null) {
if(!$team_id) {
$this->Session->setFlash(__('Invalid team', true));
$this->redirect(array('controller' => 'teams', 'action' => 'index'));
}
$this->data['Watchlist']['team_id'] = $team_id;
$this->data['Watchlist']['user_id'] = $this->Auth->user('id');
$this->Watchlist->create();
$this->Watchlist->save($this->data);
$this->set('current_city', $this->Cookie->read('_current_cityid'));
$this->set('watchlist_id', $this->Watchlist->id);
$this->render('add', 'ajax');
}
function remove($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid ID for watchlist', true));
$this->redirect(array('controller' => 'team', 'action' => 'index'));
}
$this->Watchlist->delete($id);
$this->set('current_city', $this->Cookie->read('_current_cityid'));
$this->set('watchlist_id', $id);
$this->render('remove', 'ajax');
}
Просмотр кода
//add.ctp
<?php echo $this->Js->link(__('Unwatch', true), array('controller' => 'watchlists', 'action' => 'remove', $watchlist_id), array('class' => 'btn', 'update' => '#watch-btn'));?>
//remove.ctp
<?php echo $this->Js->link(__('Watch this Team', true), array('controller' => 'watchlists', 'action' => 'add', $watchlist_id), array('class' => 'btn', 'update' => '#watch-btn'));?>
Любая помощь в этом вопросе будет высоко оценена.Если проблема не ясна, пожалуйста, дайте мне знать.
JQuery Code
// После нажатия «Добавить в список наблюдения» - неверный идентификатор ссылки
<a id="link-1577632165" class="btn" href="/watchlists/remove/4e96d2ca-9a10-409d-b7f5-0a4507063618">Unwatch</a>
//<![CDATA[
$(document).ready(function () {$("#link-1949180817").bind("click", function (event) {$.ajax({dataType:"html", success:function (data, textStatus) {$("#watch-btn").html(data);}, url:"\/watchlists\/add\/4e7c5af6-7110-426a-80d4-062207063618"});
return false;});});
//]]>
// После перезагрузки страницы «Добавить в список наблюдения» - ссылкаИдентификаторы верны
<a id="link-1441882285" class="btn" href="/watchlists/remove/4e96d31b-b600-4df3-9e86-1cb107063618">Unwatch</a>
//<![CDATA[
$(document).ready(function () {$("#link-1441882285").bind("click", function (event) {$.ajax({dataType:"html", success:function (data, textStatus) {$("#watch-btn").html(data);}, url:"\/watchlists\/remove\/4e96d31b-b600-4df3-9e86-1cb107063618"});
return false;});});
//]]>