如何在按下提交按钮之前查询数据库

时间:2014-03-25 01:11:53

标签: javascript ajax coldfusion

我有一个问题。我有一个要求一些基本输入的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 个答案:

答案 0 :(得分: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>

这不是经过测试的代码,我有点匆忙。我使用了自动完成功能,因此它会在您键入时检查数据库。