我在我的php form.1st中使用了2个自动完成功能来获取公司名称(来自mysql)&第二个获取所选公司的产品名称(来自mysql)。例如,如果我选择公司“A”,那么我只需要在第二个自动填充文本字段中获取公司“A”的所有产品名称。
注意:(这可以在选择菜单中使用,但我使用的是自动填充,因为我有超过200家公司的记录)
我的自动填充的javascript代码:
<script>
$(document).ready(function() {
$("input#companyname").autocomplete({
source: [
<?php
while($rs = mysql_fetch_array($res))
{
$title = $rs['title'];
?>
"<?php echo $title; ?>" <?php echo ", "; ?>
<?php
}
?>
]
});
});
</script>
答案 0 :(得分:1)
在http://www.devbridge.com/projects/autocomplete/jquery/查看此JQuery .autocomplete插件的文档。所以,一个例子是:
var a = $('#query').autocomplete({
serviceUrl:'service/autocomplete.ashx',
minChars:2,
delimiter: /(,|;)\s*/, // regex or character
maxHeight:400,
width:300,
zIndex: 9999,
deferRequestBy: 0, //miliseconds
params: { country:'Yes' }, //aditional parameters
noCache: false, //default is false, set to true to disable caching
// callback function:
onSelect: function(value, data){ alert('You selected: ' + value + ', ' + data); },
// local autosugest options:
lookup: ['January', 'February', 'March', 'April', 'May'] //local lookup values
});
您将看到在params下,您可以使用AJAX查询指定要发送的其他数据。因此,在您的情况下,您需要使用产品字段的自动完成请求从公司输入字段发送公司名称/ ID。所以你会有类似的东西:
<input id='company_name' />
...
var company_name = document.getElementById('company_name').value;
...
params: { company: company_name }
希望有所帮助。
答案 1 :(得分:0)
您不需要提交按钮,但您需要回发或异步回调 - 提交按钮只是第一个。如果您希望它与其他自动完成类似,请从jquery中查找Ajax调用。
答案 2 :(得分:-1)
这是错误的方法。您应该创建一个单独的PHP文件,将您的数据库结果排除为JSON。然后你可以调用这个JSON文件在jquery中自动完成。
如果没有提交按钮,您可以尝试
$("input#companyname").keypress({
// do your thing here
});