2014-03-25 60 views
0

我有问题。我有一个要求输入一些基本输入的coldfusion表格如何在按下提交按钮之前查询数据库

<label class="ricRequired">ID<label><br /> 
<input type="text" id="tid" name="tid" size="30" maxlength="10" class="ricValidate" ric:required="yes" ric:format="integer" /> 

表单在结尾处有一个提交按钮。一旦用户输入他/她的ID,我想检查用户是否存在于数据库中。我怎样才能做到这一点?有比使用ajax更简单的方法吗?

+1

只有在您愿意进行页面加载时才能避免Ajax。 –

+0

我将如何做页面重新加载并保持已填充的表单域? – user2967577

+0

如果会涉及“POST”变量,然后用它们重新填充输入字段。大多数情况下,ajax会大大简化事情。以前你曾使用过它吗? –

回答

0

我不确定你需要什么,但我会给你一个我将如何去做的例子。

动作/ HTML页面

<html> 
    <head> 
     <script type="text/javascript" src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script> 
     <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> 

     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('#tid').autocomplete({ 
        source: function(query, response) { 
         $.ajax({ 
          url: "funcEntity.cfc?method=userSearch&returnformat=json", 
          dataType: "json", 
          data: { 
           searchPhrase: query.term 
          }, 
          success: function(result) { 
           $("#someDiv").html(result); 
          } 
         }); 
        } 
       }); 
     </script> 

    </head> 
    <body> 
     <div id="someDiv"> 
      <!--- displays message ---> 
     </div> 
     <div> 
      <form name="someForm" method="POST"> 
       <label class="ricRequired">ID<label><br /> 
       <input type="text" id="tid" name="tid" size="30" maxlength="10" class="ricValidate" ric:required="yes" ric:format="integer" /> 
      </form> 
     </div> 
    </body> 
</html> 

功能/ funcEntity.cfc

<cfcomponent> 

<cffunction name="userSearch" access="remote"> 
    <cfargument name="searchPhrase" /> 
    <cfquery name="usernameQuery" datasource="yourDatasource"> 
     SELECT username 
     FROM someTable 
     WHERE username = <cfqueryparam cfsqltype="cf_sql_varchar" value="#searchPhrase#"> 
    </cfquery> 
    <cfif usernameQuery.recordCount GT "0"> 
     <cfset var content = "This username already exists."> 
    <cfelse> 
     <cfset var content = "This username is available."> 
    </cfif> 
    <cfreturn content> 
</cffunction> 

</cfcomponent> 

这不是测试代码,我在赶时间排序的。我使用了自动完成功能,以便在您输入时检查数据库。