2010-12-17 31 views
2

我將jQuery UI自動完成附加到工作的聯繫人字段,但現在我還需要傳遞一個company_id(動態地)來限制搜索不僅限於搜索字符還包括用戶以前選擇的公司。 IE如果用戶輸入'jo',則所有包含'jo'的聯繫人都在company_id內傳遞。jQuery UI autoComplete - 從另一個字段傳遞一個值

順便說一下,remote.php傳回了id和value,所以我可以填充contact_name和contact_id。該部分起作用。

我只是不知道如何將它傳遞給company_id字段。

 

    $("#contact_name).autocomplete({ 
     source: 'remote.php?t=contactSearch', 
     minLength: minlen, 
     select: function(event, ui) { 
      $("#contact_id").val(ui.item.id); 
     } 
    }); 

謝謝!

回答

2

經過大量研究和追蹤和錯誤,這對我很有用。

那麼這樣做:
用戶選擇了一個公司代碼(未顯示)之前,
下autocomple連接的CONTACT_NAME,和COMPANY_ID也被傳遞。
remote.php返回符合部分搜索條件且屬於給定公司的聯繫人的id和值的數組。當用戶點擊一個值時,聯繫人姓名被放置在自動完成的字段中(沒有特殊的代碼,自動完成會自動完成),並且id被放置在contact_id字段中。

 
     $("#contact_name").autocomplete({ 
      source: function(request, response) { 
       $.getJSON ('remote.php', 
       { term: request.term, company_id:$('#company_id').val() }, 
       response); 
      }, 
      select: function(event, ui) { 
       $("#contact_id").val(ui.item.id); 
      } 
     }); 


A look at a simplified version of remote.php is: 


$myDataRows = array(); 
$search = addslashes($_REQUEST['term']); 
$company_id = addslashes($_REQUEST['company_id']); 

$sql = "SELECT c.contact_id as `id`, contact_name as`value` FROM contacts c 
    WHERE c.company_id = '$company_id' and c.contact_name LIKE '%$search%' "; 

$result = mysql_query ($sql); 

while ($row = mysql_fetch_assoc($result)) { 
    array_push($myDataRows, $row); 
} 

$ret = json_encode ($myDataRows); 

echo $ret; 

相關問題