Задать вопрос
@Minningt

Как определить input?

Добрый день всем. У меня задача заключается в том, что мне надо определить поле, в которое вводится значение и выводятся в autocomplete данные из таблицы. Подскажите как можно добавить переменную в js код, чтобы get запрос срабатывал и определял поле
В данном php коде должно определять GET запрос поля и следовательно выдавать мне в input информацию из таблицы.
$accepted = array(
        'Manufacture',
        'Generational'
    );
    $type = isset($_GET['type']) ? $_GET['type'] : null;
   
    $column = in_array( $type, $accepted ) ? $type : $accepted[0];
    
    $pdo = connect();
    $keyword = '%'.$_POST['keyword'].'%';
 
    $sql = "SELECT distinct($column) FROM Processors WHERE $column LIKE (:keyword) ORDER BY $column ASC LIMIT 0, 10";
    $query = $pdo->prepare($sql);
    $query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
    $query->execute();
    $list = $query->fetchAll();
    
    foreach ($list as $rs){
        $string = str_replace($_POST['keyword'], '<b>'.$_POST['keyword'].'</b>', $rs[$column]);
        echo '<li data-value="'.$rs[$column].'">'.$string.'</li>';
    };

<td>
    <div class="input_container" data-container="autocomplete">
         <input type="text" id="Manufacture" data-type="Manufacture" data-action="autocomplete" name = "Manufacture" />
          <ul id="Manufacture_list_id"></ul>
     </div>  
</td>

$(document).on('keyup', '[data-action="autocomplete"]', function (e) {
  var min_length = 0,
  type = data('type'),
    input = $(this).data('type');

  if (this.value.length >= min_length) {
    $.ajax({
      url: '/functions/autocomplete.php?type='  + type,
      type: 'POST',
      data: {
        keyword: this.value,
        name: this.name
      }
    }).done(function (data) {
      input.next().html(data).show();
    });
  } else {
    input.next().hide();
  }
});

$(document).on('click', '[data-container="autocomplete"] li', function (e) {
  var item = $(this),
    list = item.closest('ul'),
    container = list.closest('[data-container="autocomplete"]'),
    input = $('[data-action="autocomplete"]', container);

  list.hide();
  input.val(item.data('value'));
});
  • Вопрос задан
  • 471 просмотр
Подписаться 2 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 2
@kir_vesp
Web Developer
Определение значения аттрибута гуглится легко. На будущее, изучите мануалы внимательно по jquery.
Получение data-type: $(this).attr('data-type')
Значение приозвольного attr: $(this).attr('attr').
Надеюсь, логика понятна.
Ответ написан
@Leshgan
Быть может это Вам поможет?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы