使用JSP和JQuery进行Mysql查询而无需刷新

时间:2012-06-30 10:02:43

标签: jquery mysql jsp tomcat7

当我按下提交按钮并显示它返回的行数而不刷新时,我想生成一个SQL查询。我已设法在下面执行此操作,但它会刷新并清除所有内容,值始终为0。我正在使用Tomcat和NetBeans。

  • 我正在使用提交功能,因为在我解决这个问题后,如果发生了什么事情,我将返回false。

  • msg范围是显示返回行的位置。

  • Funciones.setSql使用所选选项上的值生成SQL并存储在静态String中。然后Funciones.count()只进行查询并将行数存储在名为numF的变量中。

  • Funciones.lista()使用一个特定字段生成数据库中的所有数据并设置值(id)。

JSP:

<div data-role="page" id="realizadas">
    <%@include file="header.jsp"%>
    <div data-role="content">
        <form name="tareasr" id="tareasr" data-mini="true" method="post">
            <fieldset data-mini="true" data-role="controlgroup" data-type="horizontal"> 
                <select data-inline="true" name="vina" id="vina">
                    <option value="0">VIÑAS</option>
                    <%=Funciones.lista("VINA","option")%>
                </select>
            </fieldset>
            <input data-icon="search" type="submit"  value="Buscar" />
        </form>
        <b><span id="msg"></span></b>

        <script>

            $("#tareasr").submit(function() {
            <jsp:useBean id="formHandler" class="ges.FormBean">
                <jsp:setProperty name="formHandler" property="*"/>
            </jsp:useBean>
                var men="Num: ";
                <%Funciones.setSql(formHandler.getVina()); 
                Funciones.count();%>
                men+=<%=Funciones.numF%>;
                alert(men);
              $("#msg").text(men).show().fadeOut(3000);
            });
        </script>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

您将Java代码和JavaScript代码混合在一起就好像它们是同一个东西。应避免使用JSP中的Java代码,如果存在,则必须位于scriptlet标记内(<% ... %>)。当执行JSP并生成HTML和JavaScript代码时,Thsi Java代码在服务器端执行。

然后,在浏览器中,可以执行JavaScript代码。此JavaScript代码无法调用用于在服务器端生成HTML的Java对象的方法。浏览器中不存在Java。如果需要从浏览器调用服务器端Java代码,则必须向服务器发送新的HTTP请求(通过单击链接,提交表单或发送AJAX请求)。