Я перерабатываю существующую форму приложения в Vue JS, которая взаимодействует и публикует сообщения через PHP. Форма содержит большое количество полей, большинство из которых содержат HTML-идентификатор чего-либо. У меня есть ряд методов Vue JS, один из которых анализирует данные формы Vue JS, а затем отправляет их через запрос HTTP POST. Я получаю сообщение об ошибке с частью кода, которая, кажется, думает, что мой element.name
равен null
.
Я не писал код, а просто отлаживаю и пытаюсь это исправить.
Я попытался консоль регистрации моих данных, и я, кажется, действительно получаю значение null
, я пытаюсь выяснить, нужно ли мне объявить var
или let
перед моим element
переменная, которая возвращает какое-то свойство.
Данный метод, вызывающий ошибку, которая вызывается при отправке формы, приведен ниже:
/**
* Parse Form Data
* @return {object}
*/
parseFormData: function parseFormData() {
console.log('Data ->' + data)
expanded = ''
data = this.formData
ignore = [
'AddressSelection', 'NextPaydateDay', 'NextPaydateMonth',
'NextPaydateYear', 'AskDebtsQuestion', 'loanreason',
'loanreason-select', 'PersonalDebtQuestion'
]
for (property in data) {
if (ignore.includes(property)) continue // skips
element = document.getElementById(property)
console.log('Element ->' + element)
switch (property) {
case 'AppLoanPurposeOther':
expanded += 'data[ApplicationPayday][AppLoanPurposeOther]=' + this.formData.AppLoanPurposeOther
break;
case 'EmpEmployerName':
expanded += 'data[ApplicationPayday][EmpEmployerName]=' + this.formData.EmpEmployerName
break;
case 'EmpEmployedYears':
expanded += 'data[ApplicationPayday][EmpEmployedYears]=' + this.formData.EmpEmployedYears
break;
case 'EmpEmployedMonths':
expanded += 'data[ApplicationPayday][EmpEmployedMonths]=0'
break;
case 'EmpIndustry':
expanded += 'data[ApplicationPayday][EmpIndustry]=' + this.formData.EmpIndustry
break;
case 'CheckDebtAdviceTeam':
expanded += 'data[ApplicationPayday][CheckDebtAdviceTeam]=' + this.formData.CheckDebtAdviceTeam
break;
case 'AppWorkPhone':
expanded += 'data[ApplicationPayday][AppWorkPhone]=' + this.formData.AppMobilePhone
break;
case 'AppHomePhone':data[ApplicationPayday][CheckDebtAdviceTeam]
expanded += 'data[ApplicationPayday][AppHomePhone]=' + this.formData.AppMobilePhone
break;
case 'CheckDebtAdviceTeam':
expanded += 'data[ApplicationPayday][CheckDebtAdviceTeam]=' + this.formData.CheckDebtAdviceTeam
break;
case 'CheckPhoneContract':
expanded += 'data[ApplicationPayday][CheckPhoneContract]=' + this.formData.CheckPhoneContract
break;
case 'BankSortcode':
expanded += 'data[ApplicationPayday][BankSortcode]=' + this.formData.BankSortcode.replace(/-/g , '')
break;
default:
if (element.name === '') continue
console.log('Element Name ->' + element.name)
var string =
expanded += element.name + '=' + data[property]
}
expanded += '&'
}
expanded = encodeURIComponent(expanded.substring(0, expanded.length - 1))
expanded = expanded.replace(/%3D/g , '=')
expanded = expanded.replace(/%26/g , '&')
expanded = expanded.replace(/%20/g , '+')
return expanded
}
Ожидаемый результат не должен давать мне значение null
, ошибка появляется на:
if (element.name == '') continue
Ошибка в консоли показывает:
![enter image description here](https://i.stack.imgur.com/fehut.png)
tlp_aff_id
передается в URL через: ?aff_id=something
, и это работает, оно указано в моих данных как:
tlp_aff_id: '<?php echo urldecode($params['aff_id']) ?>'