传递附加变量jqueryui自动完成

时间:2011-06-27 22:29:06

标签: jquery mysql json jquery-ui jquery-plugins

我从here找到了一篇关于jqueryui auto complete的好文章。它展示了如何使用json从mysql获取数据。它工作得很好。但我必须发送一个变量值,如下所示。

的index.php

<form>
<select name="typeo" id="typeo" class="select" title="Select Country from List">
    <option>None</option>
    <option>US</option>
<option>UK</option>
</select>

<input type="text" id="state"  name="state" /> <input readonly="readonly" type="text" id="abbrev" name="abbrev" maxlength="2" size="2"/></p>
    <input type="submit" name="submit" value="Submit" /></p>

jquery

$('#abbrev').val("");

        $("#state").autocomplete({
            source: "states.php",
            minLength: 2,
            select: function(event, ui) {
                $('#state_id').val(ui.item.id);
                $('#abbrev').val(ui.item.abbrev);
            }
        });
    });

现在我想在states.php中发送typeo的值,这样mysql查询可能就像

"SELECT statename, statecode FROM states where country='$typeoValue' AND statename LIKE '%$states%'"

那么如何发送typeo的值?任何人都可以帮助我。 感谢。

1 个答案:

答案 0 :(得分:3)

您必须为callback使用source参数。

这样的事情应该有效(未经测试)。

$('#abbrev').val("");

        $("#state").autocomplete({
            source: function(term, callback) {
                callback($.getJSON('states.php', {states: term, typeo: $("#typeo").val()}));
            },
            minLength: 2,
            select: function(event, ui) {
                $('#state_id').val(ui.item.id);
                $('#abbrev').val(ui.item.abbrev);
            }
        });
    });

有关此内容的更多信息,请访问http://jqueryui.com/demos/autocomplete/

  

第三种变体,即回调,提供了最大的灵活性,可用于将任何数据源连接到自动完成。回调有两个参数:

     

一个请求对象,具有一个名为“term”的属性,它引用当前文本输入中的值。例如,当用户在城市字段中输入“new yo”时,自动填充术语将等于“new yo”。

     

响应回调,它要求单个参数包含要向用户建议的数据。应根据提供的术语过滤此数据,并且可以采用上述任何简单本地数据格式(String-Array或具有标签/值/两者属性的Object-Array)。在提供自定义源回调以处理请求期间的错误时,这很重要。即使遇到错误,也必须始终调用响应回调。这可确保窗口小部件始终具有正确的状态。