Невозможно прочитать свойство 'name' с нулевой ошибкой в ​​форме PHP / Vue JS - PullRequest
0 голосов
/ 24 апреля 2019

Я перерабатываю существующую форму приложения в 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

tlp_aff_id передается в URL через: ?aff_id=something, и это работает, оно указано в моих данных как:

tlp_aff_id: '<?php echo urldecode($params['aff_id']) ?>'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...