2012-03-22 26 views
0

我想將INPUT字段的id傳遞給提供選項的PHP文件。這是我的HTML & jQuery代碼。但是PHP程序的id爲undefined。感謝您的幫助。將HTML INPUT字段ID傳遞給jQuery中的PHP完成程序自動完成

的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> 
+0

你沒有添加任何HTML btw,並且服務器url中有一些奇怪的符號「...&callback =?」 – shershen 2012-03-22 07:07:56

回答

0

嘗試從this.element獲取ID:

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

另請參閱this example

+0

哇,工作!謝謝。 – 2012-03-22 15:58:59

+0

不客氣。如果你能接受你所有問題的正確答案,那將會很好(另見[這個鏈接](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) )。 – scessor 2012-03-22 18:27:09

1

$(this).attr('id')的值是不確定的,因爲this是放在(自動完成的參數接受的對象自動完成的參數的對象,所以如果您使用$(this).attr('id'),那麼您引用的是自動完成參數中傳遞的對象)

因此您不能使用$(this).attr('id')

你要存儲文本字段的ID,可以作爲全局變量...希望這有助於有點