Есть задача собрать все поля формы и отправить их через ajax в php
Для сбора использую serialize но проблема в том что при загрузке страницы он собирает все поля но при отправки формы только два.
Нужно для cms bitrix
код template.php
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<form>
<?=$arResult["FORM_HEADER"]?>
<div style="display: none ;" class = "ajaxForm">
<div id="popup_write" class="fancy_popup_block">
<div class="popup_write">
<h2>Написать нам</h2>
<div class="popup_write_form">
<div class="write__form">
<?foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion):?>
<div class="fieldset cf">
<div class="fieldset__label">
<span><?= $arQuestion['CAPTION'] ?></span>
</div>
<div class="fieldset__content">
<input type="text" class="input_def" name="form_<?= $arQuestion['STRUCTURE'][0]['FIELD_TYPE'] ?>_<?= $arQuestion['STRUCTURE'][0]['QUESTION_ID'] ?>">
</div>
</div>
<?endforeach;?>
<div class="fieldset fieldset-2line cf">
<div class="fieldset__label">
<span>Введите цифры с картинки</span>
</div>
<?
CMain::CaptchaCheckCode();
include_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/captcha.php");
$cpt = new CCaptcha();
$cpt->SetCode();
?>
<div class="fieldset__content">
<div class="fieldset__capcha">
<input id = "sid" type="hidden" name="captcha_sid" class = "code" value="<?= $cpt->GetSID() ?>" />
<img src="/bitrix/tools/captcha.php?captcha_sid=<?= $cpt->GetSID(); ?>" alt="CAPTCHA" ></div>
<input id = "captha" type="text" class="input_def fieldset__capcha_inp" name = "captcha_word">
</div>
</div>
<div class="fieldset fieldset-btn cf">
<div class="fieldset__label"></div>
<div class="fieldset__content">
<button id = "b" class="btn" <?= (intval($arResult["F_RIGHT"]) < 10 ? "disabled=\"disabled\"" : ""); ?> type="submit" name="web_form_submit" value="<?= htmlspecialcharsbx(strlen(trim($arResult["arForm"]["BUTTON"])) <= 0 ? GetMessage("FORM_ADD") : $arResult["arForm"]["BUTTON"]); ?>">Отправить</button>
<div id = "error" class="error_text" style = "display:none;">Какие-то поля не заполнены<br>или неверно введена капча.</div>
</div>
</div>
</div>
</div>
</div>
<div class="popup_write_ok" style="display: none;">
<div class="write_inner_ok">
<i class="icon-ok"></i>
<div class="thanks">Спасибо за сообщение!</div>
</div>
</div>
</div>
</div>
<?=$arResult["FORM_FOOTER"]?>
</form>
<script type="text/javascript">
/*var dat = $('form').serialize();
console.log(dat);*/
$("#b").on("click",function()
{
var dat = $('form').serialize();
console.log(dat);
$.ajax({
url:'/ajax/feedback.php',
type: 'POST',
dataType:'JSON',
data:dat,
success:function(data)
{
console.log(data);
$.each(data, function(l,e){
console.log(e);
})
},
error: function()
{
console.log('error',arguments);
}
});
});
</script>
непосредственно сам скрипт обработки:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->RestartBuffer();
foreach ($_REQUEST as $key => $value) {
$result[$key] = $value;
}
$i = 0;
foreach ($_REQUEST as $key => $value) {
$arParam[$key] = $value;
$i++;
//if($i == 3) break;
}
echo json_encode($_REQUEST);
//echo json_encode($_REQUEST);
if(CModule::IncludeModule("form"))
{
$arRes = array();
//echo json_encode($arParam);
if ($APPLICATION->CaptchaCheckCode($result['captcha_word'],$result['captcha_sid']))
{
$arRes['rID'] = CFormResult::Add((int)$_REQUEST['form'], $arParam, "N");
}
else
{
$arRes['rID'] = CFormResult::Add((int)$_REQUEST['form'], $arParam, "N");
};
CFormResult::Mail($arRes['rID']);
$error = CForm::Check((int)$_REQUEST['form'],$arParam,$arRes['rID'],"N","Y");
//echo json_encode($error);
}
?>