Получение другого значения в базе данных на основе выбранного значения - PullRequest
0 голосов
/ 26 февраля 2020

У пользователей одна и та же учетная запись, но разные номера (у одного пользователя может быть несколько учетных записей), например:

  1. ID: 1
  2. User_id: 101
  3. Электронная почта: kid@do.com
  4. Номер счета: 30001
  5. Имя: Kiddo
  6. Пол: Мужской
  7. Доход: 50000

  1. ID: 2
  2. Идентификатор пользователя: 101
  3. Электронная почта: kid@do.com
  4. Номер счета: 30002
  5. Имя: Kiddo
  6. Пол: Мужской
  7. Доход: 40000

Как видите, единственная разница между учетными записями пользователей - это доход и номер счета.

У меня есть эта простая форма для отображения данных пользователя на основе номера счета, когда пользователь выбирает номер счета 30001, он показывает вышеуказанное значение, а когда пользователь выбирает номер счета 30002, пользователь видит другое значение.

Это пример для опции выбора:

<div class="form-group form-material">
            <label class="col-lg-12 col-sm-3 control-label">Account Number
            <span class="required">*</span></label>
            <div class="col-lg-12 col-sm-9">
                <select class="form-control" id="noacc" name="noacc" required>
                @foreach($accounts as $key => $account)
                <option value="{{ $account->account_number}}" >{{ $account->account_number}}</option>   
                @endforeach
                </select>
            </div>
          </div>

и это форма ввода для дохода:

 <div class="form-group form-material">
            <label class="col-lg-12 col-sm-3 control-label">Income
            <span class="required">*</span></label>
            <div class="col-lg-12 col-sm-9">
              <input readonly type="text" class="form-control" name="income" value="{{ $accounts->income }}">
            </div>
          </div>
* 10 47 * Но когда пользователь меняет номер счета, значение дохода все равно не меняется.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Этого невозможно достичь без использования Javascript или отправки формы. Потому что форма уже отображается с HTML / значением на сервере. Он не может динамически изменить существующее значение.

Ниже приведен непроверенный код, только идея.

Метод 1:

<script>
function setIncome(accNumber) {
  const accounts = @json($accounts->map(function($account) {
   return {
     "accountNumber": $account->accountNumber,
     "income": $account->income
   };})
  const income = accounts.find((account) => account.accountNumber === accNumber).income
  document.getElementById('incomeField').value = income;
)

}
</script>

<select onChange="setIncome"></select>
<input name="income" id="incomeField">

Метод 2: Вы отправляете небольшой формы с выбранным accountNumber, затем бэкэнд возвращает $selectedAccountIncome, затем вы вводите поле в полеcomeField.

Метод 3: Используйте AJAX. Имея аналогичную функцию onChange выше, но используйте accountNumber, чтобы получить income и отобразить на внешнем интерфейсе.

0 голосов
/ 26 февраля 2020

Попробуйте использовать value="{{ $account->id}}"

@foreach($accounts as $key => $account)
<option value="{{ $account->id}}" >{{ $account->account_number}}</option>   
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...