Javascript/PHP/Jquery-自动填充和数据加密

Javascript/PHP/Jquery-自动填充和数据加密,javascript,php,jquery,mysql,jquery-ui,Javascript,Php,Jquery,Mysql,Jquery Ui,我正在寻找一个更好的自动完成功能/处理,或者一种从源代码视图编码特定数据的方法 我有一个MYSQL数据库,其中包含以下客户信息: Record | CompanyName | StreetAddress | City | State | Zip | Telephone ------------------------------------------------------------------------------ 1 | Eatery | 123 Main

我正在寻找一个更好的自动完成功能/处理,或者一种从源代码视图编码特定数据的方法

我有一个MYSQL数据库,其中包含以下客户信息:

 Record | CompanyName | StreetAddress | City | State | Zip   | Telephone
------------------------------------------------------------------------------
    1   |  Eatery     |  123 Main St  |  NYC |   NY  | 10001 |  000-000-0000
------------------------------------------------------------------------------    
    2   |  Jo's Gym   |  456 2nd St   |  NYC |   NY  | 10001 | 000-000-0000
-------------------------------------------------------------------------------
etc....
然后我有一个搜索页面来搜索客户。此搜索页面有一个文本输入框,用于将所有CompanyName捕获到一个数组中:

while( $row = $results->fetch_assoc() )
{
    array_push($customerArray,$row['companyname']);
}
然后,我使用位于此处的jquery自动完成函数

通过自动完成我的输入框,哪一个可以正常工作

<label for="customername">Customer Name: </label>
<input type="text" name="companyname" id="customername" size="30">
<span id="customernamespan"></span>
所以一切都很顺利。我甚至还进行了javascript验证,以确保输入的客户在列表中

我的问题是,5000+CustomerName现在位于一个数组中,所有检查源代码的人都可以看到它

有没有办法隐藏这些信息,或者有没有更好的方法来自动完成

我认为处理这个问题的唯一真正方法是使用一个中间页面验证客户名称并回显最佳猜测

addnotes.php将有字段,CustomerName将是常规文本输入框

checkCustomer.php将所有数据都放在$\u POST中,并查询MySQL数据库中的CustomerName,如%token%token%,然后使用带有“你是指这个标题吗?”的单选按钮返回。如果是其中任何一个,则他们可以选择名称或单击添加新客户

如果单击了name,则将$\u POST传递到handleddnotes.php,并使用insert和yada-yada执行我的工作

如果是新客户机,请将$\u POST传递到createCustomer.php并创建新客户,然后处理原始的addnotes$\u POST

-

谢谢,
eherr

在这些情况下,我要做的是等待用户在输入中键入3个或更多字符,然后启动一个ajax请求,检索与第一个字符匹配的记录列表

<input type="text" name="companyname" id="customername" size="30" onchange="autofill(this.value);">



<script type = "text/javascript">
   function autofill(text){
      if ( text.length < 3 ) return;
      else  ajax.post("get_customers.php", {data:text}, function(response){
          $( "#customername" ).autocomplete({
            source: response.availableTags
        });
      });
   }
</script>

希望能有所帮助

我想你的问题可能更多的是可用性而不是代码

如果您加密自动完成数据,您的用户将如何使用自动完成功能? 如果您使用类似的解决方案处理问题,那么键入a并要求后端为您检索选项将陷入几乎相同的问题。 如果你的用户看不到你的自动完成数据,那么自动完成可能不是你想要的。 尝试重新验证您的目标:

你真正的目标是什么? 为什么您的用户必须选择一个选项? 关于这些数据,什么更重要?安全性还是可用性? 您的用户是否有其他方法可以在您的软件中获取所有客户的姓名?
建议您使用AJAX进行检查,因此它将结果限制为PHP返回的内容,并且调用是异步的
<input type="text" name="companyname" id="customername" size="30" onchange="autofill(this.value);">



<script type = "text/javascript">
   function autofill(text){
      if ( text.length < 3 ) return;
      else  ajax.post("get_customers.php", {data:text}, function(response){
          $( "#customername" ).autocomplete({
            source: response.availableTags
        });
      });
   }
</script>