2

我将 jQuery UI 自动完成附加到一个可以工作的联系人字段,但现在我还需要传递一个 company_id(动态)以将搜索不仅限制为搜索字符,而且限制为用户之前选择的公司。IE 如果用户输入“jo”,则所有包含“jo”的联系人都在 company_id 中传递。

顺便说一句,remote.php 传回了 id 和值,因此我可以同时填充contact_name 和contact_id。那部分有效。

我只是不知道如何将 company_id 字段传递给它。

    $( "#contact_name ).autocomplete({
        来源:'remote.php?t=contactSearch',
        minLength: minlen,
        选择:函数(事件,用户界面){
             $( "#contact_id" ).val(ui.item.id );
        }
    });

谢谢!

4

1 回答 1

2

经过大量的研究和反复试验,这对我有用。

那么这是做什么
的:用户在此代码之前选择了一家公司(未显示),
下面的自动完成附加了contact_name,并且还传递了company_id。
remote.php 返回满足部分搜索条件并属于给定公司的联系人的 id 和值的数组。当用户点击一个值时,联系人姓名被放置在自动完成的字段中(没有特殊代码,自动完成会自动完成)并且 id 被放置在 contact_id 字段中。

        $( "#contact_name" ).autocomplete({
            来源:功能(请求,响应){
                $.getJSON ('remote.php',
                { term: request.term, company_id:$('#company_id').val() },
                回复 );
            },
            选择:函数(事件,用户界面){
                $( "#contact_id" ).val(ui.item.id );
            }
        });


看一下remote.php的简化版本是:


$myDataRows = 数组 ();
$search = addlashes($_REQUEST['term']);
$company_id = addlashes($_REQUEST['company_id']);

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

$result = mysql_query ($sql);

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

$ret = json_encode ($myDataRows);

回声 $ret;

于 2010-12-18T00:49:13.667 回答