如何根据jsp中下拉列表中选择的值获取文本框中的值

如何根据jsp中下拉列表中选择的值获取文本框中的值,jsp,Jsp,我试图根据组合框中的选定项将值填充到数据库中的文本框,它起了作用,但每当我选择值并且填充文本框时,它都会将表单值插入数据库,而不提交表单值。谁能帮我一下吗 下面是我的代码: <script type="text/javascript"> function reset(){ alert("Yeah!"); document.getElementByID("subzone").value = ""; } &l

我试图根据组合框中的选定项将值
填充到数据库中的
文本框
,它起了作用,但每当我选择值并且填充
文本框
时,它都会将表单值插入数据库,而不
提交
表单值。谁能帮我一下吗

下面是我的代码:

<script type="text/javascript">
       function reset(){
           alert("Yeah!");
           document.getElementByID("subzone").value = "";
       }
    </script>
    <script type="text/javascript">
        window.history.forward();
        function noback() { window.history.forward(); }
     </script>


       <script type="text/javascript">
           function myoriginaldata() {
              document.getElementById("gn").value = document.getElementById("hgn").value; 
              document.getElementById("mn").value = document.getElementById("hmn").value;
              document.getElementById("ag").value = document.getElementById("hag").value; 
          }
  </script>
   <body>
    <form action="/FeezyMusic/B_book_artist" method="post" class="form-horizontal row-fluid">

                    <div class="control-group">
            <label class="control-label" for="basicinput">Select Artist to book here...</label>
            <div class="controls">
                            <select tabindex="1" name="group_name" id="gid" onchange="this.form.submit()" data-placeholder="Select here.." class="span8">
                            <option>Select</option>
                            <%
            Class.forName("com.mysql.jdbc.Driver");
             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/feezymusic","root","");
            sqlQuery = "Select * from bookartist";
            st = conn.createStatement();
            rst = st.executeQuery(sqlQuery);
            while (rst.next()) {
               %>
               <option><%=rst.getString("ARTISTNAME")%></option>
            <%
            }
            rst.close();
            st.close();
            conn.close();

            %>
        </select>

        </div>
        </div>

            <%
            groupname_var=request.getParameter("group_name");
           Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/feezymusic","root","");
                sqlQuery="select ArtistGenre,ArtistManager,Agent from bookartist where ArtistName='"+groupname_var+"'";
                st=conn.createStatement();
                rst=st.executeQuery(sqlQuery);
                while(rst.next())
                {
                data_genre=rst.getString("ArtistGenre");
                data_manager = rst.getString("ArtistManager");
                data_agent = rst.getString("Agent");
                }
                rst.close();
                st.close();
                conn.close();

            %>
            <input type="hidden" id="hgroupname_id" value="<%=groupname_var%>">

    <div class="control-group">
            <label class="control-label" for="basicinput">Artist Genre</label>
            <div class="controls">
                            <input type="text" id="basicinput" name="genre" value="<%=data_genre%>"  placeholder="Artist..." class="span8" disabled>
            </div>
        </div>  


<div class="control-group">
            <label class="control-label" for="basicinput">Artist Manager</label>
            <div class="controls">
            <input type="text" name="manager" value="<%=data_manager%>" id="basicinput" placeholder="Manager..." class="span8" disabled>
            </div>
        </div>                    

 <div class="control-group">
            <label class="control-label" for="basicinput">Feezy Music Agent</label>
            <div class="controls">
            <input type="text" name="agent" value="<%=data_agent%>" id="basicinput" placeholder="Agent..." class="span8" disabled>
            </div>
        </div>


<div class="control-group">
    <div class="controls">
        <input class="btn btn-primary" type="submit" value="Submit">
        </div>
        </div>



                        <%

            String genre_var = request.getParameter("genre");
            String manager_var = request.getParameter("manager");
            String agent_var = request.getParameter("agent");
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/feezymusic","root","");
            st=conn.createStatement();
         %>
           <input type="hidden" id="hgn" value="<%=genre_var%>">             
           <input type="hidden" id="hmn" value="<%=manager_var%>">            
           <input type="hidden" id="hag" value="<%=agent_var%>">            

           <% 
                if(groupname_var!=null && genre_var!=null && manager_var!=null && agent_var!=null){
                    if(!groupname_var.equals("") && !genre_var.equals("") && !manager_var.equals("") && !agent_var.equals("")){
                        %>
                   <script type="text/javascript">
                   myoriginaldata();
                 </script>  
                 <% 
                      st.executeUpdate("update bookartist set ArtistGenre='"+genre_var+"',ArtistManager='"+manager_var+"',Agent='"+agent_var+"' where ArtistName='"+groupname_var+"'");

                    }
                }
               st.close();
               conn.close();

               %>
               <script type="text/javascript">
                document.getElementById("gid").value = document.getElementById("hgroupname_id").value;
            </script>
        </form>

函数重置(){
警惕(“耶!”);
document.getElementByID(“子区域”).value=“”;
}
window.history.forward();
函数noback(){window.history.forward();}
函数myoriginaldata(){
document.getElementById(“gn”).value=document.getElementById(“hgn”).value;
document.getElementById(“mn”).value=document.getElementById(“hmn”).value;
document.getElementById(“ag”).value=document.getElementById(“hag”).value;
}
在此处选择要预订的艺术家。。。
挑选
艺术家类型
艺术家经理
Feezy音乐经纪人
myoriginaldata();
document.getElementById(“gid”).value=document.getElementById(“hgroupname_id”).value;

在您的代码中,您已将
onchange=“this.form.submit()”
提交到您的
选择框中,因此每当更改
选择的值时,默认情况下表单将获得。要避免这种情况,只需按如下方式更改您的代码:

    <select tabindex="1" name="group_name" id="gid" 
onchange="myfunction(this.value);" data-placeholder="Select here.." class="span8">        
     <!--^added this function and passing value to it-->
    ..
     </select>  
<script type="text/javascript">
function myfunction(values)
{
 document.getElementById("yourtextboxid").value=values; //<--assigning value of select to textbox

}
</script>
<script type="text/javascript">
    function myfunction(values) {
        document.getElementById("yourtextboxid").value=values; //<--assigning value of select to textbox
    //ajax call
   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) {
             //do something
             alert("success");
             document.getElementById("yourdivid").innerHTML = this.responseText;
         }
     };
     //sending group_name on jsp page
     request.open("GET", "yourjsppage?group_name="+values, true);
     request.send(); 
    }
</script>
还添加对
null
值的检查,即

<%
        if(request.getParameter("group_name") ! = null ){ 
        //your db code 
     groupname_var=request.getParameter("group_name");
               Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/feezymusic","root","");
                    sqlQuery="select ArtistGenre,ArtistManager,Agent from bookartist where ArtistName='"+groupname_var+"'";
                    st=conn.createStatement();
                    rst=st.executeQuery(sqlQuery);
                    while(rst.next())
                    {
                    String data_genre=rst.getString("ArtistGenre");
                    String data_manager = rst.getString("ArtistManager");
                    String data_agent = rst.getString("Agent");
                    }

                    rst.close();
                    st.close();
                    conn.close();


     //whatever will be in out.println() will be sent back as response 
           out.println("<input type='hidden' id='hgroupname_id' value='"+groupname_var+"'>

            <div class='control-group'>
                    <label class='control-label' for='basicinput'>Artist Genre</label>
                    <div class='controls'>
                                    <input type='text' id='basicinput' name='genre' value='"+data_genre+"'  placeholder='Artist...' class='span8' disabled>
                    </div>
                </div>  


        <div class='control-group'>
                    <label class='control-label' for='basicinput'>Artist Manager</label>
                    <div class='controls'>
                    <input type='text' name='manager' value='"+data_manager+"' id='basicinput' placeholder='Manager...' class='span8' disabled>
                    </div>
                </div>                    
         <div class='control-group'>
                    <label class='control-label' for='basicinput'>Feezy Music Agent</label>
                    <div class='controls'>
                    <input type='text' name='agent' value='"+data_agent+"' id='basicinput' placeholder='Agent...' class='span8' disabled>
                    </div>
                </div>");

        }
   %>

在您的代码中,您已将
onchange=“this.form.submit()”
指定给您的
选择框
,因此无论何时更改
select
的值,默认情况下,表单都将获得。为避免此情况,只需按如下方式更改代码:

    <select tabindex="1" name="group_name" id="gid" 
onchange="myfunction(this.value);" data-placeholder="Select here.." class="span8">        
     <!--^added this function and passing value to it-->
    ..
     </select>  
<script type="text/javascript">
function myfunction(values)
{
 document.getElementById("yourtextboxid").value=values; //<--assigning value of select to textbox

}
</script>
<script type="text/javascript">
    function myfunction(values) {
        document.getElementById("yourtextboxid").value=values; //<--assigning value of select to textbox
    //ajax call
   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) {
             //do something
             alert("success");
             document.getElementById("yourdivid").innerHTML = this.responseText;
         }
     };
     //sending group_name on jsp page
     request.open("GET", "yourjsppage?group_name="+values, true);
     request.send(); 
    }
</script>
还添加对
null
值的检查,即

<%
        if(request.getParameter("group_name") ! = null ){ 
        //your db code 
     groupname_var=request.getParameter("group_name");
               Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/feezymusic","root","");
                    sqlQuery="select ArtistGenre,ArtistManager,Agent from bookartist where ArtistName='"+groupname_var+"'";
                    st=conn.createStatement();
                    rst=st.executeQuery(sqlQuery);
                    while(rst.next())
                    {
                    String data_genre=rst.getString("ArtistGenre");
                    String data_manager = rst.getString("ArtistManager");
                    String data_agent = rst.getString("Agent");
                    }

                    rst.close();
                    st.close();
                    conn.close();


     //whatever will be in out.println() will be sent back as response 
           out.println("<input type='hidden' id='hgroupname_id' value='"+groupname_var+"'>

            <div class='control-group'>
                    <label class='control-label' for='basicinput'>Artist Genre</label>
                    <div class='controls'>
                                    <input type='text' id='basicinput' name='genre' value='"+data_genre+"'  placeholder='Artist...' class='span8' disabled>
                    </div>
                </div>  


        <div class='control-group'>
                    <label class='control-label' for='basicinput'>Artist Manager</label>
                    <div class='controls'>
                    <input type='text' name='manager' value='"+data_manager+"' id='basicinput' placeholder='Manager...' class='span8' disabled>
                    </div>
                </div>                    
         <div class='control-group'>
                    <label class='control-label' for='basicinput'>Feezy Music Agent</label>
                    <div class='controls'>
                    <input type='text' name='agent' value='"+data_agent+"' id='basicinput' placeholder='Agent...' class='span8' disabled>
                    </div>
                </div>");

        }
   %>

非常感谢。我尝试了您的代码,但它没有从数据库中获取与下拉列表中所选项目相关的值,它只是将文本框字段设置为所选下拉项目。您可以使用
ajax
为此,请检查更新的答案。对不起,你能给我看一个完整的代码示例,根据数据库中选定的下拉列表在文本框中获取值吗现在检查更新的答案,你也可以使用
json
执行上述操作。谢谢。我尝试了您的代码,但它没有从数据库中获取与下拉列表中所选项目相关的值,它只是将文本框字段设置为所选下拉项目。您可以使用
ajax
为此,请检查更新的答案。对不起,你能给我看一个完整的代码示例,根据从数据库中选择的下拉列表在文本框中获取值吗现在检查更新的答案,你也可以使用
json
执行上面的操作,。