Применить ответ json к различным элементам div с помощью jQuery - PullRequest
0 голосов
/ 04 декабря 2010

У меня есть форма входа, которую я отправляю, используя плагин jQuery и ajaxForm. Форма отправляется в порядке, и я получаю ответ JSON:

{"username":"Enter your username","password":"password must not be empty"}

Моя форма выглядит следующим образом с использованием фреймворка кохана:

<?php echo form::open('login',array('id'=>'login'));?>
<div id="username_errors"></div>        
<?php   echo form::label('username','Username');?><br/> 
<?php   echo form::input('username','',array('id' => 'username','class'=>'login          text ui-widget-content ui-corner-all'));?><br/>
<div id="password_errors"></div>        
<?php   echo form::label('password','Password');?><br/>
<?php   echo form::password('password','',array('id' => 'password','class'=>'text ui-widget-content ui-corner-all'));?><br/>

<?php   echo form::label('remember_me','Remember Me');
    echo form::checkbox('Remember Me', 'remember_me', FALSE);?><br/>

<?php   echo form::submit('submit','Login');
    echo form::close();?>

Мой JQuery:

jQuery('.form #login').ajaxForm({ 
    data: jQuery(this).serialize(),
    dataType:'json',
    url:'login',
    success: function(data){
        if (data.redirect == 'home') {
        window.location.href=data.redirect;
        }//else append error messages to relevant divs

        }
        });

Я хочу взять свои сообщения об ошибках (если они есть) и заполнить соответствующие div сообщениями об ошибках. Есть идеи?

1 Ответ

1 голос
/ 04 декабря 2010

Я думаю, вы довольно близки, попробуйте:

jQuery('.form #login').ajaxForm({ 
    data: jQuery(this).serialize(),
    dataType:'json',
    url:'login',
    success: function(data){
        if (data.redirect == 'home') {
            window.location.href=data.redirect;
        } else {
            $('#username_errors').html(data.username);    
            $('#password_errors').html(data.password);        
        }
    });
...