2

无论我忘记提到我的第二个问题,我都在这里收到了关于我的问题的第一部分的帮助。在用户从自动完成字段中选择一个值后,我想将 vaules ID 填充到隐藏字段中,以便可以将其传递给 PHP 并插入到数据库中。

以下是我要完成的工作的细分:

  1. 用户从自动完成字段中选择场地。
  2. 选择场地后,场地电话、地址和网站将显示在自动填充字段下方。数据库中记录的 ID 作为其值传递给隐藏字段。

我进行了搜索,但一无所获。有人可以引导我朝着正确的方向前进吗?

谢谢

4

2 回答 2

6

我假设您使用的是标准的自动完成插件: http ://docs.jquery.com/Plugins/Autocomplete

如果你的 html 中有这个:

<input type='text' id='foo' />
<input type='hidden' id='bar' />

您将希望将其用作您的 javascript:

$(document).ready(
function(){
    var data = "1,address 1,phone 1|2,address 2,phone 2".split('|');
    $("#foo").autocomplete(data,{formatItem:function(item){
        return item[0].split(',').slice(1).join(' ');}
    }).result(function(event,item){
        $("#bar").val(item[0].split(',')[0]);
    });
});

你在做什么是这样的:

  1. 添加一个 formatItem 选项以从源数据中取出 id。
  2. 添加结果处理程序以使用 id 设置隐藏字段。

让我知道这是否有帮助。

于 2010-01-14T04:46:07.790 回答
2

我认为,在碰到这堵砖墙后,在这里有一些帮助,我找到了一个更简单的解决方案

  $("#fieldA").autocomplete({
    source: '<%=Url.Action("functionName", "ControllerName") %>',
    select: function(e,ui) { $('#fieldB').val(ui.item.objectName) }, 
  });

fieldA从源文件自动完成。我正在使用 ASP.net MVC,它将functionName包含在ControllerName中(当然你也可以粘贴你想要的 Web 链接的 URL)。该网页返回分解为单独项目字段的行列表。唯一的限制是返回的字段之一被命名为“”。然后,选择允许您从 ui.item 对象中分离所有其他字段(ui.item 末尾的对象名),并根据需要放置在尽可能多的字段中,而ui.item.value中的“”自动填写自动完成字段。

于 2012-03-21T18:36:13.223 回答