Здравствуйте.
При написании отзыва и отправки, раньше работало так, когда написал и отправил, перенаправляло на страницу, где была надпись что отзыв отправлен и ждет проверки модератора.
Щас сделано через js, но не полностью, валидация без перезагрузки, а когда нажимаешь отправить, то отзыв уходит на проверку, но надписи нет, как вывести надпись? подскажите, чтобы выводилась надпись и форма forms с заполнеными полями была чистая.
Вот акшионы:public function action_index()
{
if (Request::current()->method() == 'POST')
{
$data = $_POST;
if (Captcha::valid($_POST['captcha']))
{
$data['ip'] = $_SERVER['REMOTE_ADDR'];
ORM::factory('reviewssite')->values($data)->create();
$this->request->redirect('reviewssite/do');
}
else
{
$errors = "Не правильно ввели код с картинки";
}
}
$captcha = Captcha::instance();
$reviews = ORM::factory('reviewssite')->where('status', '=', 1)->order_by('id', 'DESC')->find_all();
$this->template->content = View::factory('index/page/reviews')
->bind('errors', $errors)
->bind('reviews', $reviews)
->bind('captcha', $captcha)
->bind('data', $data);
$this->template->site_name = "Отзывы";
}
public function action_do()
{
$this->template->content = View::factory('index/page/reviews_do');
$this->template->site_name = "Отзывы";
}
}
Что лишнее в акшионах что убрать, подскажите пожалуйста.
Вот сам js который в шаблоне отправки отзыва.<script type='text/javascript'>
$('#otzivpredlog').submit(function() {
var obj = this;
var check = checkForm(obj);
if (check) {
$.post($(this).attr('action'), $(this).serialize(), function(r) {
if (r.error) {
$(obj).find('#validationka').html(r.error).show();
}
if (r.ok) {
$(obj).html(r.ok);
}
}, 'json');
}
return false;
});
</script>
Сама форма в шаблоне, пишу не весь код.<form method="POST" id="otzivpredlog">
тут поля для заполнения.
</form>
Я так понимаю в js нужно добавить когда проверка валидации проходит, и если все ок, то чтобы выводилась надпись отзыв отправлен на проверку, так же сделать чтобы форма отчищалась, как это реализовать? подскажите.
Я вот что пробовал:
if (r.ok) {
$(obj).find('#validationka').html('Ваш отзыв отправлен на проверку, после проверки будет добавлен на сайт.').show();
}
И вывод:
<?php if (!empty($errors)) echo $errors?> - это для ошибок если есть.
<?php if (!empty($oks)) echo $oks?> - это вывод если отправлено должно быть.
Но что-то не сработало.