我将 jQuery UI 自动完成功能附加到一个有效的联系人字段,但现在我还需要传递一个 company_id (动态)以将搜索不仅限制为搜索字符,还限制为用户之前选择的公司。 IE 如果用户输入“jo”,则所有包含“jo”且在 company_id 内的联系人都会通过。
顺便说一句,remote.php 传回 id 和值,以便我可以填充 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 ); } });
谢谢!
最佳答案
经过大量研究和反复试验,这对我有用。
这有什么作用:
用户在此代码之前选择了一家公司(未显示),
下面的自动补全附加了 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;
关于jQuery UI autoComplete - 从另一个字段传递一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475466/