Ну, у меня есть страница со ссылками на отчеты. Когда кто-то нажимает на один отчет, он может загрузить файл 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>"; }`