Добрый день, создаю дополнительные поля в форме при нажатии на кнопку. Вот код самой формы
<h3>Имеющиеся кредиты</h3>
<div id="table_containerCredit">
<div class="credit_div">
<label for="af_bank_name">Наименование банка:</label>
<input type="text" name="bank_name[]">
<label for="af_credit_type">Вид кредита: <p>кредитная карта, потребительский кредит, ипотека и т.д.</p></label>
<input type="text" name="credit_type[]">
<label for="af_credit_sum">Сумма ежемесячного платежа:</label>
<input type="text" name="af_credit_sum[]">
<label for="af_credit_start">Дата получения кредита:</label>
<input type="text" name="credit_start[]">
<label for="af_credit_finish">Дата погашения кредита:</label>
<input type="text" name="credit_finish[]">
</div>
</div>
<input type="hidden" id="credit_hidden" name="credit_hidden" value="Нет кредитов">
<input type="button" value="Добавить поле" id="addCredit" class="btn" name="addKredit" onclick="return add_new_image();">
Далее скриптом ловятся эти значения
$('#send_anketa').click(function() {
var arr_out = new Array;
$('.credit_div').each(function(indx, element){
bank_name=$(element).find('[name="bank_name[]"]').val();
credit_type=$(element).find('[name="credit_type[]"]').val();
af_credit_sum=$(element).find('[name="af_credit_sum[]"]').val();
credit_start=$(element).find('[name="credit_start[]"]').val();
credit_finish=$(element).find('[name="credit_finish[]"]').val(); arr_out.push({"bname":bank_name,"ctype":credit_type,"acs":af_credit_sum,"cstart":credit_start,"cfinish":credit_finish});
});
var str_json = JSON.stringify(arr_out);
$("#credit_hidden").val(str_json);
console.log($("#credit_hidden").val());
return true;
});
После этого массив данных обрабатывается в php
<?php
$value = $modx->getPlaceholder('credit_hidden');
//$debug='<tr><td> debug= '.'</td><td>'.var_export($value,true).'</td></tr>';
$value=str_replace('"','"',$value);
$arr=json_decode($value,true);
$output='';
foreach($arr as $el){
$output.='<tr><td>'.$el['bname'].'</td><td>'.$el['ctype'].'</td><td>'
.$el['acs'].'</td><td>'.$el['cstart'].'</td><td>'.$el['cfinish'].'</td></tr>';
}
return $output;
Но в скрипт попадает только значение первых полей. Пересмотрел код, несколько раз, не понимаю в чем проблема.
В отладчике браузера строка [{"bname":"Кредит 1","ctype":"вид кредита 1","acs":"1","cstart":"1","cfinish":"1"}] . Значит скрипт не принимает массив значений