Ответ 1
echo "<script>
alert('There are no fields to generate a report');
window.location.href='admin/ahm/panel';
</script>";
и избавиться от строки redirect
ниже.
Вы смешивали два разных мира.
Ну, у меня есть страница со ссылками на отчеты. Когда кто-то нажимает на один отчет, он может загрузить файл 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');
, тогда появится предупреждение, но оно перемещает пользователя на страницу, которая должна была генерировать файл 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:...');
и завершает выполнение script. Часть, которую вы пытаетесь эхо, никогда не будет выводиться.
Вы должны либо уведомить вас на странице загрузки, либо уведомить на странице, на которую вы перенаправляете про недостающие данные.
echo "<script>
window.location.href='admin/ahm/panel';
alert('There are no fields to generate a report');
</script>";
Попробуйте так, как это работает...
Сначала назначьте окно новой страницей, на которой должно отображаться окно предупреждения, затем отобразите окно предупреждения.
который работал, но попробовал это так.
эхо "alert (" Нет полей для создания отчета");
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>";
}`