الكود منقول من موقع ... لكن اضفت ملف layout باسم default وملفين CSS للتنسيق , لكن التنسيق مش جميل بلكن للتوضيح فقط ...
لم استطع ارفاق المجلد لان حجمه كبير .. وهذه هي الاكواد
Users_Controller.php
كود:
<?php
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html','Form','Javascript');
function add() {
$this->pageTitle = 'Home';
$this->layout = 'default';
if(!empty($this->data)) {
$this->User->save($this->data);
}
}
function ajax_validate() {
$this->pageTitle = 'Home';
$this->layout = 'default';
Configure::write('debug', 0);
if($this->RequestHandler->isAjax()) {
$this->data['User'][$this->params['form']['field']] = $this->params['form']['value'];
$this->User->set($this->data);
if($this->User->validates()) {
$this->autoRender = false;
}
else {
$errorArray = $this->validateErrors($this->User);
$this->set('error', $errorArray[$this->params['form']['field']]);
}
}
}
}
?>
ملف User.php الـ Model
[code]
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array('username'=>
array('rule'=>'isUnique',
'message'=>'Sorry, this username already exists'));
}
?>
في مجلد الـ View انشيء مجلد باسم users
وضع بداخله الملفين التاليين :
1- ad.ctp
كود:
<?php
//let's load up the jQuery core
echo $javascript->link('jquery', false);
//and now... some file that will be specific to this view (page)
echo $javascript->link('users_add', false);
?>
<?php echo $form->create(); ?>
<?php echo $form->input('username', array('id'=>'username')); ?>
<?php echo $form->end('Add User'); ?>
2-
ajax_validate.ctp :
كود:
<?php
echo $error;
?>
*** في مجلد CSS في webroot ضع الملف التالي :
Style.css
كود:
body{
background-color:#8B7D6B;
}
form{
background-color:#E0EEEE;
margin-left:10px;
width:150px;
}
#username{
border:1px solid red;
}
وضع ايضا في نفس المجلد ملف reset.css ابحث عنه من خلال قوقل
**** في مجلد Js في webroot ضع الملف التالي :
users_add.js
كود:
$(document).ready( function() {
$('#username').blur( function () {
fieldName = $(this).attr('id');
fieldValue = $(this).val();
$.post('/users/ajax_validate', {
field: fieldName,
value: fieldValue
},
function(error) {
if(error.length != 0) {
$('#username').after('<div class="error-message" id="'+ fieldName +'-exists">' + error + '</div>');
}
else {
$('#' + fieldName + '-exists').remove();
}
});
});
});
بالاضافة الى وضع ملف مكتبة الـ jquery.js .
*** انشئ قاعدة البيانات الجدول باسم users وبه حقلين id و username .
*** الكود يقوم بتخزين اسماء في الجدول واذا وجد اسم مشابه يخرج رسالة تنبيه
بالتوفيق