На странице, которая его проверяет, должен быть напечатан JSON с результатами; как то так
Вид:
<?php
echo $javascript->object($result);
?>
или
<?php
echo json_encode($result);
?>
Контроллер
при условии, что вы делаете свои проверки и у вас есть переменная $ validate, которая имеет значение true, если evcrything в порядке
$this->layout='json_cont';
//do your validations here
if ($validate)
$result = array(
'result' => 1,
'error' => null
);
else
$result = array(
'result' => 0,
'error' => 'error validating'
);
$this->set('result', '$result);
Вам также нужен макет json_cont
<?php
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
header('Content-Type: text/x-json');
echo $content_for_layout;
?>
наконец, вам просто нужно немного изменить свою функцию ajax
$.ajax({
type: "POST",
url: "users/validate",
data: dataString,
cache: false,
dataType: "json",
dataFilter: function(data, type) {
return data;
},
success: function(data) {
if (data != null && data.result == 0) {
alert(data.error);
}
else {
//do here something that accepts your validation, like a js function to give some info to the user or something
}
},
error: function(data) {
try {
alert('error doing the validation');
} catch (e) { }
}
});
Я думаю, я ничего не пропустил, надеюсь, это поможет вам: D