@DeeUs

Как сделать ajax форму с сохранением результатов в админке?

Здравствуйте!
Как лучше реализовать форму(ajax), чтобы результаты хранились в админке и на почту администратора(или на отдельно прописанную почту) приходило уведомление с заполненными данными.
в интернетах наткнулся на разные реализации и через main:feedback и через iblock.element.add и через bittrix:form.result.new. но так как я пока не особо в битриксе - я не совсем понимаю как лучше и правильнее.

Спасибо)
  • Вопрос задан
  • 346 просмотров
Решения вопроса 1
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
Вы задали много вопросов в одном посте.
Вот отличный пример:
<?
$el = new CIBlockElement;
$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38
$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 18,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "Элемент",
  "ACTIVE"         => "Y",            // активен
  "PREVIEW_TEXT"   => "текст для списка элементов",
  "DETAIL_TEXT"    => "текст для детального просмотра",
  "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
  );
if($PRODUCT_ID = $el->Add($arLoadProductArray))
  echo "New ID: ".$PRODUCT_ID;
else
  echo "Error: ".$el->LAST_ERROR;
?>

Создайте инфоблок, в нем свойства.
Создайте страницу, в ней форму с полями, при отправке формы делайте пост-запрос на страницу с кодом выше.
Вот пример для ajax
<script type="text/javascript">
$(function () {
            $('#form_id').submit(function(e){
                e.preventDefault();
                var data = $(this).serialize();
                $. ajax ({
                    url:'/ajax.php',
                    type:'post',
                    data:data,
                    success:function(res){
                        $('#result').html(res);
                    }
                })
            })
        })  
    </script>

В ответ получите New ID.
Почту приделать можно через файл init.php, добавив действие по событию OnAfterIBlockElementAdd
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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