Laravel Вид - Редактировать страницу, получая форму выбора со значением триггера опции, чтобы открыть поле ввода - PullRequest
0 голосов
/ 26 февраля 2020

Я использую laravel 5.4, и у меня есть форма выбора со значением параметра, которое вызывает поле ввода

Мое представление:

<select name="event_type" id="event_type">
   <option value="" disabled>Choose Event</option>
   <option value="Kids Party" {{ old('event_type',$client->eventDetail->event_type) == "Kids Party" ? 'selected' : '' }}>Kids Party</option>
   <option value="Debut" {{ old('event_type',$client->eventDetail->event_type) == "Debut" ? 'selected' : '' }}>Debut</option>
   <option value="other">Specify</option>
</select>

<div class="input-field col s12 event_type_other">
   <input name="event_type" type="text" placeholder="Specify.." value="{{ $client->eventDetail->event_type }}" class="validate">
   <label for="event_type">Make your own selection!</label>
</div>

My Javascript:

$(function () {
    var $select2 = $('#event_type');

    $select2.formSelect();
    $select2.on('change', function (e) {

        if($(this).val()==="other"){
            $('.event_type_other').show();
        }else{
            $('.event_type_other').hide();
}
}).change();
});

Мой вопрос: как я могу получить значение option = other , которое будет selected , если значение из база данных не равна значению Kids Party и Debut

Я пытался сделать это, но это не сработает

<option value="other" {{ old('event_type',$client->eventDetail->event_type) != "Kids Party" ? '' : old('event_type',$client->eventDetail->event_type) != "Debut" ? '' : 'selected' }}>Specify</option>

Я открыт для другого пути.

Ответы [ 2 ]

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

Я только что добавил это в свой контроллер

        $event_type = Client::findOrFail($id);

        if ($event_type->eventDetail->event_type !== "Kids Party" AND $event_type->eventDetail->event_type != "Debut")
        {
            $new_event_type = "other";
        }
        else
        {
            $new_event_type = " ";
        }

И это, на мой взгляд,

<option value="other" {{ old('event_type',$new_event_type) == 'other' ? 'selected' : '' }}>Specify</option>

Теперь оно работает для меня

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

Попробуйте реализовать вот так

<select name="event_type" id="event_type" onchange="myFun()">
   <option value="" disabled>Choose Event</option>
   <option value="Kids Party" {{ old('event_type',$client->eventDetail- 
   >event_type) == "Kids Party" ? 'selected' : '' }}>Kids Party</option>
   <option value="Debut" {{ old('event_type',$client->eventDetail->event_type) 
   == "Debut" ? 'selected' : '' }}>Debut</option>
   <option value="other">Specify</option>
</select>

<div class="input-field col s12 event_type_other" id="myDiv" @if (@$client->eventDetail->event_type!= "others") style="display: none; @endif>
   <input name="event_type" type="text" placeholder="Specify.." value="{{ 
   $client->eventDetail->event_type }}" class="validate">
   <label for="event_type">Make your own selection!</label>
</div>

А в вашем скрипте

<script>
   function myFun() {
      var value = $('#event_type').val();
      if(value == "other") {
         $('#myDiv').show();
      } else {
         $('#myDiv').hide();
      }
   }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...