Валидация отзывов, нужна помощь в дописании js, не могу разобратся, как сделать?

Здравствуйте.

При написании отзыва и отправки, раньше работало так, когда написал и отправил, перенаправляло на страницу, где была надпись что отзыв отправлен и ждет проверки модератора.

Щас сделано через 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?> - это вывод если отправлено должно быть.

Но что-то не сработало.
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 1
Ivanq
@Ivanq
Знаю php, js, html, css
А что в r? Может быть, как раз ok там и нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы