0

Codeigniterフレームワークを使用してWebアプリケーションを作成しています。

ユーザーがユーザー名とパスワードを入力するためのログインフォームと、[覚えている]チェックボックスがあります。ユーザーがフォームを送信すると、jQuery ajaxを使用してフォームが送信され、データのチェックと操作のために投稿データがログインコントローラーの送信機能に送信されます。送信機能が実行された後、ユーザーがログインしている場合はJSON配列が返されます。ユーザーが正常にログインした場合はダッシュボードに送信され、正常にログインしなかった場合はエラーメッセージが表示されます。何かがうまくいかなかったことを彼らに知らせるためのユーザー。

私が欲しいのは、php側に渡されない検証ルールが、jQueryフォーム検証の場合と同じように、対応する入力フィールドの下に表示されるようにすることです。何かがjQuery側を回避し、PHPがそれをキャッチして問題を修正する場合に備えて、両方の検証を実行しています。

現在、検証に合格しなかったことを示すメッセージが表示されますが、ユーザー入力ボックスの下に合格しなかった検証ルールを表示する方法を理解するのに問題があります。

これは、現時点でphpから返されるJSONメッセージです。そのため、現在、エラーが発生し、フォームが検証されなかったことをユーザーに通知し、検証されなかった理由であるエラーメッセージが含まれていると表示されます。

{"output_status":"Error","output_title":"Form Not Validated","output_message":"The form did not validate successfully!","error_messages":{"username":"This is not have an accepted value!"}}

<div style="display:none"  id="message_container"><button type="button" class="close" data-dismiss="alert">&times;</button></div>
<div class="login_container">
<?php $attributes = array('id' => 'login_form', 'class' => 'form-horizontal'); ?>
<?php echo form_open('login/submit', $attributes); ?>
<div class="form-row row-fluid">
    <div class="spa12">
        <div class="row-fluid">
            <?php $attributes = array('class' => 'form_label span12'); ?>
            <?php echo form_label('Username<span class="icon16 icomoon-icon-user-3 right gray marginR10"></span>', 'username', $attributes); ?>
            <?php $attributes = array('name' => 'username', 'id' => 'username', 'value' => '', 'class' => 'span12 text valid'); ?>
            <?php echo form_input($attributes); ?>
        </div>
    </div>
</div>
<div class="form-row row-fluid">
    <div class="span12">
        <div class="row-fluid">
            <?php $attributes = array('class' => 'form_label span12'); ?>
            <?php echo form_label('Password<span class="icon16 icomoon-icon-locked right gray marginR10"></span><span class="forgot"><a href="#">Forgot your password?</a></span>', 'password', $attributes); ?>
            <?php $attributes = array('name' => 'password', 'id' => 'password', 'value' => '', 'class' => 'span12 password'); ?>
            <?php echo form_password($attributes); ?>
        </div>
    </div>
</div>
<div class="form-row row-fluid">                       
    <div class="span12">
        <div class="row-fluid">
            <div class="form-actions">
                <div class="span12 controls">
                    <input type="checkbox" id="keepLoged" value="Value" class="styled" name="logged" />Keep me logged in
                    <button type="submit" class="btn btn-info right" id="loginBtn">
                        <span class="icon16 icomoon-icon-enter white"></span>
                        Login
                    </button>
                </div>
            </div>
        </div>
    </div> 
</div>
</form>
</div>
4

1 に答える 1

1

あなたはこれを行うことができます。PHP側では、検証が失敗した場合は常にフィールド名とともにエラーメッセージを返し、フィールド名を使用してjQueryで選択し、エラーメッセージを追加します

$(fieldname).append(<span>error</span>);
于 2012-12-20T01:42:46.453 に答える