【发布时间】:2013-02-19 14:47:45
【问题描述】:
从这里开始,我没有示例代码,我正在寻求有关这是否可能的建议以及有关如何操作的一些指示..
有人要求我创建一个 PHP 脚本来搜索我们的 Windows LDAP 通讯簿。 为了让事情变得尴尬,我被要求这样做,以便前端看起来像电话键盘,并且用户使用数字键盘输入姓名。
在我看来,数字将与字母相关:
2 = ABC
3 = DEF
4 = GHI
5 = JKL
6 = MNO
7 = PQRS
8 = TUV
9 = WXYZ
我可以看到两种不同的方式来做到这一点。
当用户输入第一个数字时,开始构建一个匹配数组,然后在他们输入第二个和第三个匹配时减少它。
建立输入的数字列表,然后搜索明确的匹配项。
我可以看到另一个问题,我需要知道用户输入了哪个数字以及何时在字符串中。
例如:用户输入 6 4 5 这将需要匹配为:
M, N or O, as the first character.
G, H or I as the second character.
J, K or L as the thrid character.
有没有人给点意见、指点?
谢谢
【问题讨论】:
-
告诉任何一位经理认为这是一个停止做智障的想法?用户面前有一个完整的键盘,为什么他们要从电话式键盘输入字母。此外,您需要 javascript 来处理输入和字母过滤,而不是 php 中的正则表达式。使用 jquery 和 ajax 作为实际的通行信来搜索自动建议文本框之类的内容,这将与作为 ajax 请求页面的 LDAP 查询页面完美配合。
-
那个电话簿有多少条目?一个近似值就足够了
-
如果您希望它像真正的老式数字电话一样工作,那么我想您需要在用户输入字符后设置一个短计时器,以防用户想再次写入相同的字符。例如。亚瑟。 A - 如果用户在计时器内再次按下 1,则显示 B - 如果用户在计时器内再次按下 1,则显示 C 等并重复,但如果计时器已过,则编写另一个 A。不过,您的任务很愚蠢!: )
-
感谢您的回复。我个人不想要电话键盘,但这不是我的电话:(通讯簿中目前大约有 3000 个条目