【问题标题】:passing additional variable jqueryui autocomplete传递附加变量 jqueryui 自动完成
【发布时间】:2011-09-23 21:20:52
【问题描述】:

我从here 找到了一篇关于 jqueryui 自动完成的好文章。它展示了如何使用 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 的值呢?任何人都可以帮助我。 谢谢。

【问题讨论】:

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


    【解决方案1】:

    您必须为source 使用callback 参数。

    这样的东西应该可以工作(未经测试)。

    $('#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”。

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

    【讨论】:

    • 感谢@Dogbert 回复你几乎写了,但我不得不做一些修改,如 source: function(rqeuest) { ($.getJSON("states.php", {term: rqeuest.term , 国名: $("#typeo").val()}));现在数据出现在萤火虫的控制台上,但不知道为什么下拉菜单没有出现。你能帮帮我吗?
    猜你喜欢
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2014-09-12
    • 2011-06-25
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多