Чтобы удалить человека из базы данных, я хотел бы проверить его связи с другими объектами, такими как инвентарь, перед удалением, а затем отобразить диалоговое сообщение начальной загрузки на той же странице.

Используя CodeIgniter, у меня есть страница с названием «Сведения о человеке», на которой есть ссылка для проверки этих подключений, например:

<a class="btn btn-custom" href="person/checkConnections/<?=$ID_Person?>">Delete</a>

В контроллере person метод checkConnections выглядит так:

public function checkConnections($ID_Person)
{
  $data["strConnections"] = "3 connections with inventories found";
  $this->load->view("person/showdetails", $data)
  // launch the dialog box #deleteMsg
  ???
}

Как я могу запустить диалоговое окно начальной загрузки с id = "deleteMsg", которое находится на странице "Сведения о человеке"? если бы это был URL-адрес html, он бы выглядел так: http: // mywebsite / person / showdetails / 134 # deleteMsg. Но как я могу получить тот же результат, используя метод codeIgniter для рендеринга представления?

Я могу проверить эти соединения при первой загрузке страницы. Но делать это каждый раз было бы неэффективно, поскольку действие удаления используется редко.

0
Warrio 16 Апр 2015 в 13:11
Кто проголосовал против этого? Законный вопрос! Как запустить диалоговое окно начальной загрузки с id = "deleteMsg" - с помощью Javascript. URL-адрес будет выглядеть так: mywebsite / person / showdetails / 134 # deleteMsg. Но как я могу получить тот же результат, используя метод codeIgniter для рендеринга представления ? - С помощью AJAX POST верните $ this-> load-> view ('something', '', FALSE) и при успешном обратном вызове добавьте / добавьте / замените / независимо от представления в DOM
 – 
ggdx
16 Апр 2015 в 13:19

1 ответ

Лучший ответ

Вы можете использовать ajax для вызова метода удаления, а затем показать ответ в форме модели, как показано ниже.

$('.btn-custom').click(function(e){
        var url = $(this).attr('href');
        $.ajax({
            type: 'GET',
            url: url,
            success: function(rtn)
            { 
                //load the bootstrap model setting the rtn as html content.
            }
          });
        return false;
    });

Контроллер должен возвращать html-вывод вашего представления.

public function checkConnections($ID_Person)
{
    $data["strConnections"] = "3 connections with inventories found";
    echo $this->load->view("person/showdetails", $data, true);
}

Обратите внимание на третий параметр true метода загрузки представления, он вернет результат представления.

0
Rifky 20 Апр 2015 в 09:23