sql >> データベース >  >> RDS >> Mysql

2つの選択オプションボックスのjspおよびajaxでmysqlからHTML選択オプションに動的に値をフェッチして入力する方法

    ajax呼び出しでは、select-boxを取得する必要があります (テーブル名)次に、それをいくつかの<div>に割り当てる必要があります 。コードを機能させるには、以下の変更を行ってください:

    Javascript

    function sendSchema() {
            var schemaOption = document.getElementById('schemaName');
            var selectedSchema = schemaOption.options[schemaOption.selectedIndex].value;
            var url = "somepage.jsp?schema=" + selectedSchema;
    
            if (window.XMLHttpRequest) {
                request = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }
    
             request.onreadystatechange= function() 
                            {
                                if(this.readyState === 4 && this.status === 200) {
                                document.getElementById("table").innerHTML =this.responseText;// getting response and assign to div with id->table
                            }
                        }; 
                            request.open("GET",url,true);  
                            request.send();
        }
    

    今あなたのsomepage.jsp 以下のようにデータベースコードを入力してください:

    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    <%@page import="java.sql.Statement"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    
    
         <%
              Statement stmtTableLit = null;
              ResultSet rsTableList = null;
          Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
    
         if (request.getParameter("schema") != null) {
                        String selectedSchema = request.getParameter("schema");//getting data 
                        stmtTableLit = conn.createStatement();
                        stmtTableLit.execute("use " + selectedSchema);
                        PreparedStatement pstmt = conn.prepareStatement("show tables");
                        rsTableList = pstmt.executeQuery();
    
                    }
       //whatever will be  there in out.println() will be sent back as response to your index.jsp page         
           out.println('<select id="tableName" onchange="sendTable()">
                <option value="null" selected="selected">Choose the Table</option>');
    
                    if (rsTableList != null) {
                        while (rsTableList.next()) {
                            out.println(
                                    "<option value=" + rsTableList.getString(1) + ">" + rsTableList.getString(1) + "</option>");
                        }
                        rsTableList.close();
                    }
    
            out.println('</select>');
         %>
    

    index.jspに、<div id="table"></div>を追加するだけです。 、ここでの応答はsomepage.jspから送信されます 、また、index.jspページから余分なコードを削除することを忘れないでください。




    1. MySQLトリガーは、新しい行の値を設定し、同じテーブル内の別の行を更新します

    2. psqlクエリ結果でテーブルの境界線スタイルを変更する方法

    3. mysqlは以前の値で欠落している日付を生成します

    4. その場でインラインSQLテーブルを作成します(左結合を除く)