Отображение данных формы, выбранных с помощью Laravel / Ajax

#jquery #ajax #laravel

Вопрос:

У меня есть следующий скрипт, который отображает все города страны.

 <script type="text/javascript">
  
  $(document).ready(function(){
       
       $("#pays").change(function(){

          /* let country_id = this.value;*/
          let country_id = $(this).find("option:selected").data("id");


           $.get('/getState/' country_id,function(data){

              $("#ville").html(data);

           });
       });

  });

</script>
 

И следующий взгляд :

 <div class="form-row">
                        <div class="col-sm-6">
                           <label>Pays</label>
                           <select class="form-control select2-single" data-width="100%" name="pays" id="pays">
                             <option label="amp;nbsp;">amp;nbsp;</option>
                             @foreach($countries as $country)
                           <option data-id="{{$country->id}}" value="{{$country->name}}">{{$country->name}}</option>
                            @endforeach
                           </select>
                       </div>  
                       <div class="col-sm-6">
                           <label>Ville</label>
                           <select class="form-control select2-single" data-width="100%" name="ville" id="ville">
                            
                           </select>
                       </div>
                  </div>
 

Я пытаюсь обновить данные , поэтому для этого я должен отобразить данные в форме , поэтому я использую следующий сценарий :

 $(document).on('click', '.edit', function(){
          var id = $(this).attr('id');
           console.log(id);
           $('#form_result').html('');
            $.ajax({
          
           url:"castingss/" id "/edit",
           dataType:"json",
           type:"GET",
           success:function(html){
           console.log(html);
           

             $('#pays').val(html.data.pays);
             $('#pays').trigger('change'); 
             $('#ville').val(html.data.ville);
             $('#ville').trigger('change'); 
            
            $('#hidden_id').val(html.data.id);
            $('.modal-title').text("Modifier les informations d'un casting/influenceur");
            $('#action_button').val("Modifier");
            $('#action').val("Modifier");
            $('#formModal').modal('show');
           }
          })
         });
 

Но я получаю следующий результат :

введите описание изображения здесь

Я не могу отобразить ville value это в форме.

Что не так с моим кодом ?

Если у вас есть какие-либо идеи, пожалуйста, помогите.

Комментарии:

1. Ну, трудно сказать, когда мы не знаем данных. Я имею в виду, что рабочая скрипка или что-то в этом роде было бы лучше с вашей концепцией. «html.data.ville» возвращает правильное значение? Вы пробовали следующее? $("#ville").val(html.data.ville).change(); И, наконец, я бы не рекомендовал использовать «html» в качестве имени параметра. Используйте что-то вроде более независимого (например, результат).

2. @NagySzabolcs спасибо за ваш комментарий , я попробовал то, что вы сказали, но не работает

3. Какова ценность «html.data.ville»? (измените его на результат, например, чтобы быть уверенным).

4. значение «html.data.ville» равно Manu’a

5. Может быть, это потому, что нет сценария, в котором событие было бы изменено на ville?

Ответ №1:

Я столкнулся с той же проблемой, показ названия столицы на основе выбора страны. Я решил эту проблему, как показано ниже

 $("#ville").append("<option value='" html.data.ville "'>" html.data.ville "</option>");
 

Используйте приведенный ниже код перед ajax запросом

 $('#ville').empty();