Проблема, связанная с прокруткой, при создании выпадающего списка с цепочкой

#php #codeigniter

#php #codeigniter

Вопрос:

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

Я использую php в качестве языка программирования и codeigniter в качестве фреймворка, вот коды

Просмотр кодов

      <div class="form-row">
       <div class="col-md-4">
         <label for="inputBody">Body Number</label>
         <select name="inputBody" id="inputBody" class="form-control" required="required">
            <?php foreach ($body as $bd) { ?>
              <option value="<?php echo $bd->bodynumkids ?>" onchange="ambildata(' <?php echo $bd->bodynumkids ?> ');"><?php echo $bd->bodynumkids ?></option>
            <?php } ?>
          </select>
        </div>
        <div class="col-md-6">
           <label for="inputKiddie">Kiddies Name</label>
           <input type="text" name="inputKiddie" id="inputKiddie" class="form-control" placeholder="ex. Super Cop" required="required">
        </div>
        <script type="text/javascript">
           function ambildata(x) {
             $.ajax({
                type:'POST',
                data :'input=' x,
                url :'<?php echo base_url()."Repairpaint/chained" ?>',
                dataType: 'json',
                success: function(data){
                   console.log(data);
                }
               })
              }
          </script>
       </div>
  

Коды контроллера

 public function chained()
    {
        $dataKiddie = $this->input->post('input');
        $where = array('bodynumkids'=> $dataKiddie);
        $namakiddie = $this->Model_repairpaint->chaincb('kiddiejadi', $where)->result();
        echo json_encode($namakiddie);
    }
  

Результат не отображался в консоли, появлялись только эти предупреждения

 This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!
  

Ожидается, что данные из базы данных появятся в консоли, когда я нажму на выпадающий список. Может кто-нибудь здесь подсказать мне решение? Спасибо вам за помощь.

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

1. Не уверен, что предупреждающее сообщение связано с каким-либо из этого кода. У вас есть кнопка / ссылка «Вернуться к началу» где-нибудь на вашей странице?

2. @kerbholz да, у меня есть такая кнопка, эта кнопка вызывает проблемы?

3. Я полагаю, что это так. В основном я вижу предупреждение «эффект позиционирования с прокруткой» на сайтах, которые отображают что-то, когда пользователь прокручивает определенную точку страницы (позиционирование с прокруткой). Попробуйте удалить / отключить JS для этой кнопки и посмотрите, появляется ли это предупреждение по-прежнему. Однако это, вероятно, не исправит вашу ошибку » Результат не отображался в консоли «.

Ответ №1:

Поместите ambildata() функцию в <select> тег, а не в <option>

 <select name="inputBody" id="inputBody" class="form-control" required="required" onchange="ambildata(this.value)">
  

И второе, что некоторые изменения в вызове Ajax

 url : '<?php echo base_url("Repairpaint/chained"); ?>'
  

или

 url : '<?php echo base_url(); ?>'   'Repairpaint/chained';
  

Отправка данных

 data : { 'input': x }
  

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

1. Хай, я попробовал ваше решение, и проблема исчезла, но теперь я столкнулся с другой проблемой, которая говорит Cross-Origin Request Blocked , и я не знаю, что это значит. Вы знаете, что это такое? Спасибо

2. Это на локальном или реальном сервере?

3. Это на локальном сервере

4. Попробуйте использовать jsonp в своем вызове Ajax. Это обойдет ту же политику происхождения. Подробнее learn.jquery.com/ajax/working-with-jsonp