Echo Javascript Alert перед перенаправлением, усло- PHP CodeIgniter - PullRequest
2 голосов
/ 28 октября 2010

Я пытаюсь получить предупреждение JavaScript, после взаимодействия с базой данных и перед перенаправлением страницы (обратно на ту же страницу, но с отображением обновленных данных).

Я думал, что пауза перед перенаправлением с помощью usleep () может сработать, но, похоже, это игнорирует. Если я закомментирую переадресацию, я попаду на страницу контроллера, где появится предупреждение.

Есть идеи?

Вот мой код:

function connect () {
    $client_id = $this->uri->segment(3);
    $related_id = $this->uri->segment(5);
    $related_name = $this->uri->segment(6);

    $uri_segments= $this->session->userdata('segments');
    $uri = base_url()."index.php".$uri_segments;

    if (!$this->uri->segment(4)) {
    $this->load->model('get_clients_model');
    $data['records'] = $this->get_clients_model->getAllClients();
    $this->load->view('clients_all_related',$data);
    }

    elseif ($this->uri->segment(4) == "add") {

        $this->load->model('get_clients_model');
        $data['record'] = $this->get_clients_model->getSingleClient($client_id,$related_id,$related_name);

        echo "<script>javascript:alert('".$data['record']."');</script>";
        usleep(2000000);
        redirect($uri); // send back to previous page with updated related contact

    }
}

Соответствующая часть находится в другом месте.

В качестве примечания, если кто-нибудь знает лучший способ сделать это, кроме предупреждения, которое просто показывает сообщение об успехе / неудаче, то это также будет приветствоваться.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 28 октября 2010

Мое предложение состояло бы в том, чтобы Javascript обрабатывал перенаправление вместо PHP.Таким образом, ваш PHP-скрипт не просто получает контроль.Возможно, вы столкнулись с проблемой кеширования или чем-то подобным с вашим выводом.

В любом случае, все просто.Javascript выводит предупреждение, которое блокирует перенаправление до тех пор, пока пользователь не подтвердит его.

echo "<script>javascript:alert('".$data['record']."'); window.location = '".$uri."'</script>";
1 голос
/ 28 октября 2010

Вы можете попробовать это:

header("refresh:20000000;url=".$uri);

As redirect () является ярлыком для заголовка ("location: ...");он должен работать.Возможно, вам понадобится полный URL вместо /controller/action.

0 голосов
/ 28 октября 2010

:) Человек, которого вы должны смывать ();введите свой код для отправки.В обычном случае весь вывод сохраняется и отправляется.

Ваш метод - худший способ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...