CakePHP模式AJAX检查不在灯箱中显示?

时间:2013-09-25 11:18:00

标签: ajax cakephp

好的,这可能有一个非常简单的答案,但对于我的生活,我似乎无法找到答案!我正在将用户从文本注册到灯光框(SimpleModal),AJAX为管理员加载新页面以将用户注册到选定的客户列表。

只要模型检查正确,这一切都可以完全没有任何问题。我有两个检查,一个确保用户名是唯一的,密码至少有8个字符,代码如下。但是当这些检查中的一个或两个不符合时,用户将被带到AJAX URL,然后显示“消息”。这不是我需要的,我需要将它带回灯箱或将这些信息设置为闪存错误信息,以便打印到屏幕上。

或者我应该从模态中删除这些检查并让JQuery检查它们吗?

有什么想法吗?

所有帮助都非常欢迎.....

模型代码::

 public $validate = array(
        'username' => array(
            'required' => array(
                'rule' => array('isUnique'),
                'message' => 'Sorry but a unique username is required'
            )
        ),
        'password' => array(
            'required' => array(
                'rule' => array('minLength', '8'),
                'message' => 'Sorry but a password of 8 characters or more is required'
            )
        ) ... more check follow but these are the issues....

CTP文件::

$this->layout = 'ajax';
$AddUserForm = $this->Form->create('User', array('url' => '/ADD-USER-URL-HERE'));
$AddUserForm .= $this->Form->input('username');
$AddUserForm .= $this->Form->input('password');
$AddUserForm .= $this->Form->input('role', array('options' => array('admin' => 'Admin', 'user' => 'User')));
$AddUserForm .= $this->Form->input('data_id', array('options' => array($data), 'empty'=>true));

$AddUserForm .= $this->Form->end(__('SAVE NEW USER')); 
echo  $AddUserForm;

1 个答案:

答案 0 :(得分:1)

ctp文件中

$('form').on('submit', function(e) {
    e.preventDefault();
    $.post($(this).attr('action'), $(this).serialize(), function(res) {
        $('form').replaceWith(res);
    })
})

可用于使用上述脚本验证数据,

我认为这可以帮助您通过ajax提交表单,还可以使用来自ajax的响应显示错误消息。

希望这会对你有所帮助。