1

Twitter Bootstrap を使用して、登録ページの validation_errors のスタイルを設定しています。

<?php
echo "<div class='alert alert-error span4'>";
echo validation_errors(); 
echo "</div>";
?>

検証は機能して表示されますが、スタイリングの一部は常に存在します (div タグの背景は赤です)。validation_errors が存在する場合にのみスタイリングを表示する方法はありますか。私はいくつかのことを試しました(htmlをphpタグに埋め込み、phpをdivタグで囲みます)が、結果は同じです。

4

5 に答える 5

2

このようなことを試すことができます。

<?php if(validation_errors()):?>
<div class='alert alert-error span4'><?php echo validation_errors(); ?></div>
<?php endif;?>
于 2012-04-04T12:24:38.700 に答える
1

私は同じ問題を抱えていました。コントローラーの変数に validation_errors() を割り当て、それをビューに渡しました。

ジェームズのソリューションから外れて、私は変更しなければなりませんでした:

if ( isset($reported_error) )

に:

if (!empty($reported_error))

これを行うと、エラーが発生した場合にのみアラート ブロックが表示されます。

于 2018-01-06T01:27:36.100 に答える
1

次の構成を使用して、エラーが参照するフィールドの横に特別なクラスのエラーを配置します。

<div class="<?php echo my_error_class('fieldname') ?>">
<input type="whatever" name="fieldname" />
<span class="whatever"><?php echo my_error_msg('fieldname') ?></>
</div>

CI ヘルパーで次の関数を使用します。

<?php
    if ( ! function_exists('my_error_class')) {
      function my_error_class($field, $error_class = "error") {
        if (FALSE === ($OBJ =& _get_validation_object())){
            return '';
          }
        if(isset($OBJ->_field_data[$field]['error']) && !empty($OBJ->_field_data[$field]['error'])) {
          return $error_class;
          }
        else {
          return '';
        }
      }
    }

if ( ! function_exists('my_error_msg')) {
  function my_error_msg($field,$default = '') {
    if (FALSE === ($OBJ =& _get_validation_object())){
        return $default;
      }
    if(isset($OBJ->_field_data[$field]['error']) && !empty($OBJ->_field_data[$field]['error'])) {
      return $OBJ->_field_data[$field]['error'];
      }
    else {
      return $default;
    }

  }
}
于 2012-05-01T16:07:15.753 に答える
0

ガイドでこれを見つけられませんでしたが、明らかにvalidation_errorsはプレフィックスとサフィックスに2つのオプションの引数を取ります...したがって、次のことができます:

validation_errors('<p class="text-warning">', '</p>');
于 2013-04-30T19:06:50.460 に答える