Отображать сообщение предупреждения и перенаправлять после нажатия

Ну, у меня есть страница со ссылками на отчеты. Когда кто-то нажимает на один отчет, он может загрузить файл excel. Однако иногда нет полей для создания отчета; в этом случае я хочу отобразить предупреждающее сообщение, и после того, как они нажмут «принять», они будут перенаправлены на основную панель. Когда они нажимают на отчет, они переходят к контроллеру, который использует switch для получения данных. Если данных нет, модель возвращает FALSE ; поэтому в конце контроллера я проверяю:

 if ($result_array != FALSE) to_excel($result_array->result_array(), $xls,$campos); else { echo "<script>alert('There are no fields to generate a report');</script>"; redirect('admin/ahm/panel'); } 

Если я redirect('admin/ahm/panel'); от redirect('admin/ahm/panel'); то предупреждение работает, но оно перемещает пользователя на страницу, которая должна была генерировать файл excel. Но если я использую перенаправление, контроллер перемещает пользователя на главную панель, не показывая предупреждение.

Любая помощь приветствуется.

Заранее спасибо.

 echo "<script> alert('There are no fields to generate a report'); window.location.href='admin/ahm/panel'; </script>"; 

и избавиться от строки redirect ниже.

Вы смешивали два разных мира.

используйте этот код для перенаправления страницы

 echo "<script>alert('There are no fields to generate a report');document.location='admin/ahm/panel'</script>"; 

Объединение CodeIgniter и JavaScript:

 //for using the base_url() function $this->load->helper('url'); echo "<script type='javascript/text'>"; echo "alert('There are no fields to generate a report');" echo "window.location.href = '" . base_url() . "admin/ahm/panel';" echo "</script>"; 

Примечание. Функция redirect() автоматически включает путь base_url , поэтому там не требуется.

Функция redirect очищает выходной буфер и делает header('Location:...'); перенаправление и выход из сценария. Часть, которую вы пытаетесь эхо, никогда не будет выводиться.

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

 echo "<script> window.location.href='admin/ahm/panel'; alert('There are no fields to generate a report'); </script>"; 

Попробуйте так, как это работает …

Сначала назначьте окно новой страницей, на которой должно отображаться окно предупреждения, а затем отобразите окно предупреждения.

это сработало, но попробуй так.

echo "(« Нет полей для создания отчета »);

window.location.href = 'администратор / AHM / Панель';

«;

предупреждение сверху, а затем следующее

Таким образом, он работает`

  if ($result_array) to_excel($result_array->result_array(), $xls,$campos); else { echo "<script>alert('There are no fields to generate a report');</script>"; echo "<script>redirect('admin/ahm/panel'); </script>"; }`