0

LiveValidation を使用してフォームを検証しています。livevalidation を使用して ajax 呼び出しでユーザー名を検証しようとしています。ユーザー名が使用可能かどうかを表示できるように、戻り値が true または false の場合、戻り値を取得する際に問題がありますが、この場合は常にユーザー名が使用できないことを返します。

HTML:

   <input type="text" id="username" name="username" />

JS:

   var username = new LiveValidation('username');
   username.add( Validate.Presence );
   username.add( Validate.Length, { minimum: 4, maximum: 10 } );
   username.add( Validate.Custom, { against: function() { return    check_username_availability() }, args:'Username Available' , failureMessage: 'Username is    Not Available' } ); 

  $.post(base_url+'cms-profile/profile_ajax/valid_username/',{username : $("#username").val()},function(data){

    if( data.success == 'no' )
     {
       return false;
     }

     if( data.success == 'yes' )
     {
        return true;
     }
    });

PHP:

   $check_username = 'some query here';

   if($check_username == true){
        $output = '{ "success": "no" }';
   }else{
       $output = '{ "success": "yes" }';
   }

   $output = str_replace("\r", "", $output);
   $output = str_replace("\n", "", $output);

   echo $output;
4

1 に答える 1

0

なぜそんなことを複雑にするのか理解できない。私はJSONを使用します。それがその目的です:

PHP:

echo json_encode( $check_username ); 
// I would rename this variable $is_valid_username 
// so it's more obvious what you're doing

JavaScript:

$.post( base_url+'cms-profile/profile_ajax/valid_username/',
  { username : $("#username").val() }, 
  function( data ) {
    return $.parseJSON( data );
  }
});
于 2012-10-23T03:16:33.713 に答える