Прямо сейчас есть форма с ~ 10 полями, и предупреждение проверки слишком длинно, обратитесь к экранной шапке
Код такой
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('description', 'Description', 'required');
$this->form_validation->set_rules('title_tw', 'Title(繁體)', 'required');
$this->form_validation->set_rules('description_tw', 'Description(繁體)', 'required');
$this->form_validation->set_rules('title_cn', 'Title(简体)', 'required');
$this->form_validation->set_rules('description_cn', 'Description(简体)', 'required');
$this->form_validation->set_rules('pose', 'Pose', 'required');
$this->form_validation->set_rules('style', 'Style', 'required');
$this->form_validation->set_rules('level', 'Level', 'required');
$this->form_validation->set_rules('type', 'Type', 'required');
$this->form_validation->set_rules('teacher', 'Teacher', 'required');
$this->form_validation->set_rules('start_date', 'Start Date', 'required');
if ($this->input->post('type') != false && $this->input->post('type')[0] == 1) {
$this->form_validation->set_rules('price', 'Price (USD)', 'required|numeric|greater_than[0]');
$this->form_validation->set_rules('price_cn', 'Price (RMB)', 'required|numeric|greater_than[0]');
}
$this->form_validation->set_error_delimiters('<div class="alert alert-danger"><a class="close" data-dismiss="alert">x</a><strong>', '</strong></div>');
и интерфейс:
<?= validation_errors; ?>
Я хотел бы уменьшить размер, используя аккордеон в начальной загрузке, так есть ли способ отменить отображение проверки?
И как проверить, есть ли, например, ошибка более 3, чем показывать, например Всего 10 ошибок и использовать аккордеон для отображения сообщения об ошибке?
Большое спасибо.
Функция error_array () возвращает массив сообщений об ошибках. Таким образом, вы можете посчитать, сколько сообщений об ошибках там, как;
$errors= error_array();
$numOfErrors = count($errors);
Также вы можете использовать функцию form_error () для отображения ошибок соответственно их полям.
<?php echo form_error('title'); ?>
<input type="text" name="title">
<?php echo form_error('title_tw'); ?>
<input type="text" name="title_tw">
...
Насколько я понимаю, ваша проблема в общей величине ошибки, так как каждая ошибка отображается в отдельной строке.
Вы можете отобразить ошибку в одной строке, используя код ниже
<?php if(validation_errors()) { ?>
<div class="alert alert-danger">
<a class="close" data-dismiss="alert">x</a>
<strong><?php echo strip_tags(validation_errors()); ?></strong>
</div>
<?php } ?>
Вы отображали каждую ошибку отдельно, поэтому она занимает столько места между ними и выглядит не очень хорошо.
так что здесь я покажу вам, как отобразить его правильно, чтобы он выглядел и чувствовал себя хорошо но для этого требуется начальная загрузка, и вы используете ее, чтобы использовать приведенный ниже код в codeigniter.
И Вы также можете закройте его, нажав кнопку закрытия справа вверху див.
<?php if (!empty(validation_errors())): ?>
<div class="alert alert-danger">
<a class="close" data-dismiss="alert" title="close">x</a>
<ul><?php echo (validation_errors('<li>', '</li>')); ?></ul>
</div>
<?php endif; ?>
Если вы хотите посмотреть, как это будет выглядеть, у меня есть демо-изображение для вас: