Передача идентификатора поля HTML INPUT в программу завершения PHP в jQuery Autocomplete - PullRequest
0 голосов
/ 22 марта 2012

Я хочу передать идентификатор поля INPUT в файл PHP с опциями. Вот мой код HTML и JQuery. Но программа PHP получает идентификатор как undefined. Спасибо за помощь.

JQuery:

    $('.classfield').autocomplete({

      //define callback to format results
      source: function(req, add){

        //pass request to server
        $.getJSON("ajax/ajax_suggestions.php?id="+$(this).attr('id')+"&callback=?", req, function(data) {

          //create array for response objects
          var suggestions = [];

          //process response
          $.each(data, function(i, val){
            suggestions.push(val.name);
          });

          //pass array to callback
          add(suggestions);
        });
      },

      //define select handler
      change: function(e) {
        $("#spill").html("change "+$(this).val()+e.type);
      }
    }); // autocomplete

HTML:

<input type="text" class="classfield" id="hello" value="there"></input><br>

Ответы [ 2 ]

1 голос
/ 22 марта 2012

значение $(this).attr('id') не определено, поскольку this - это объект, который помещается в параметр автозаполнения (параметр автозаполнения принимает объект, поэтому если вы используете $(this).attr('id'), вы ссылаетесь на объект,передается в параметре автозаполнения)

, поэтому вы не можете использовать $(this).attr('id').

Вы должны сохранить идентификатор текстового поля, может быть в качестве глобальной переменной ... Надеюсь, это немного поможет

0 голосов
/ 22 марта 2012

Попробуйте получить идентификатор из this.element:

//pass request to server
$.getJSON("ajax/ajax_suggestions.php?id="+this.element.attr('id')+"&callback=?", req, function(data) {

Также см. этот пример .

...