Вход • Регистрация

"допиливание" кнопки оформить заказ

  • 04 апреля 2013 г.
  • Всем доброго дня! Возник вопрос по поводу кнопки "оформить" в самой корзине (diafan 5.0).
    Чего хочется: при нажатии кнопки "оформить" заказ падал в админку, и по-почтам шла рассылка и после этого выводилось окно, "заказ оформлен" и страница перезагружалась.
    Сейчас: при нажатии кнопки "оформить" заказ падает в админку, и по-почтам происходит рассылка, но страница не меняется, ничего не происходит. Т.е. покупатель не видит результата.

    Пытался допилить файл cart.view.form.php все бы получилось, но с проверкой формы маневр не удался, и нужно подстраиваться еще под проверку заполнения формы. Есть мысль создать переменную которая подтягивается к проверке формы, и если какое то поле не заполнено то эта переменная принимает false, а если все заполнено то true. Но вот как её подтянуть к проверке?

    Ниже прилагаю свой недодеданный код, в котором если переменная $form_empty не равна $xxx при нажатии кнопки "оформить" скрипт выводит окно "Ваш заказ оформлен!", и с задержской в пол секунды обновляет страницу. А если $form_empty равна $xxx то выводится сообщение "Пожалуйста заполните все поля корректно!".

    В нижнюю часть страницы cart.view.form.php дописал
    Код
    <?php
    if ($form_empty != $xxx)
    {
    $button_numb = 'but1()';
    }
    else {
    $button_numb = 'but2()';
    }

    if(! empty($result["payments"]))
    {
    echo '<p>'.$this->_('SELECT_PAYMENT').':</p>';
    foreach($result["payments"] as $row)
    {
    echo '<p><input name="payment_id" value="'.$row['id'].'" type="radio" '.($row == $result["payments"][0] ? 'checked' : '').'> '.$row['name'];
    if(! empty($row['text']))
    {
    echo '<div class="cart_payment_text">'.$row['text'].'</div>';
    }
    echo '</p>';
    }
    }
    ?>

    <script language="JavaScript">
    <!--
    function but1() {
    alert("Ваш заказ оформлен!");
    ident = window.setTimeout("window.location.reload( true );", 500);
    }
    function but2() {
    alert("Пожалуйста заполните все поля корректно!");
    }
    //-->
    </script>
    <?php
    echo '<span class="button_wrap"><input type="submit" value="'.$this->_('TO_ISSUE', false).'" onClick="'.$button_numb.'" class="orange_button"></span>';
    echo '<div class="errors error"'.($result["error"] ? '>'.$result["error"] : ' style="display:none">').'</div>
    </form>';
    echo '</div>';


    Прошу помочь разобраться с этой ситуацией. Может я конечно не в ту сторону смотрю, и есть более простое решение?

    • 06 апреля 2013 г.
    • Цитата
      Прошу помочь разобраться с этой ситуацией. Может я конечно не в ту сторону смотрю, и есть более простое решение?


      Мне кажется такие проверки лучше делать до отправки формы, на JS или еще проще и красивее на Jquery, то есть в момент нажатия кнопки отправить ( заказать) производится не сразу отправка формы, а проверка, что в ней все заполнено как надо, если что-то не заполнено то это поле подсвечавется выделяется, красной рамкой , выдается предупреждение итд, а если форма в порядке то проверка проходит успешно и производится передача данных формы. Кроме этого к полям формы можно добавить то, что появилось сейчас в HTML 5 - проверку правильности формата Email, Телефона и тд, а также надписи подсказки, которые исчезают при изменении пользователем значения в поле ввода.
      • 08 апреля 2013 г.
      • Нет. Если выбирать между серверной и клиентской, то для сайта лучше серверная проверка.
        А ещё лучше 2 проверки и на сервере и на клиенте, тут главное конечно, чтобы они не отличались.

        К тому же автору нужны не проверки, а действия после успешного заказа, приведенный код автора, если коротко, то "смотрит не в ту сторону."

        В общем самое простое решение автор уже выбрал - "заказать проект".
  • 08 апреля 2013 г.
  • Да, на решение этой задачи ни времени, ни знаний мне не хватило.
    Илье спасибо за проделанную им работу.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум