如何获取没有提交按钮的文本域数据?可能吗

时间:2012-01-31 12:29:31

标签: php javascript jquery ajax jquery-ui

我在我的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>

3 个答案:

答案 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
});